Author Topic: Ready to start coding! - What area needs focus?  (Read 8159 times)

Offline zack

  • Developer
  • byte
  • *****
  • Posts: 36
    • View Profile
    • InfuseDreams
Ready to start coding! - What area needs focus?
« on: January 05, 2013, 05:45:54 AM »
Hey Paul.

I posted here ages ago offering to help contribute to the mupen64 plus ae project, but life got on top of me and I had 0 spare time to help.

Now I have finished up a game I was working on, I have some spare time and want to contribute.
What areas currently need focusing on? What are our weak points?

Also curious about performance and compatibility (in development version vs public version)

I did some prep work before making this post and found the following (comparing release version of mupen to release version of n64oid) All tested on samsung galaxy s2.

Conkers bad fur day:

Mupen: Slow and jerky. Jittery sound, numerous graphical issues.
N64oid: Full speed but jittery sound.

Donkey Kong 64:

Mupen: No graphics on screen. Tried both video plugins.
N64oid: Full speed and looks good. However it hangs midway through the initial cut scene.

Mario Kart 64:

Mupen: Runs good overall, some odd fps hiccups.
N64oid: No issues.

Zelda - Ocarina Of Time:

Mupen: Runs good overall, some odd fps hiccups. Pause menu takes a while to show and it's background isn't always the right one.

N64oid: Same as above.

Do these still apply?

Also curious as to where we are at regarding bluetooth gamepads. Can we still only allocate a dpad like control structure to analog sticks or can we use anaolog sticks with deadzones, and true analog control now?


Looking forward to hearing from you.

PS: For those curious, I previously worked on the daedalus x64 project for the PSP (N64 emulator for PSP)
« Last Edit: January 05, 2013, 06:53:01 AM by zack »

Offline Paul

  • Administrator
  • double
  • *****
  • Posts: 3499
  • Developer
    • View Profile
    • PaulsCode.Com
Re: Ready to start coding! - What area needs focus?
« Reply #1 on: January 05, 2013, 07:06:37 AM »
I can add you to the repository if you give me your github username.

For comparison of graphics between Mupen64Plus AE and N64oid, it would be better to use gles2rice video plugin for comparison instead or gles2n64, since N64oid's video plug-in is also a port of Rice and Yongzh removed gles2n64 from his app a while ago, most likely due to the more numerous graphics issues with it.

That said, graphics and speed, which you hit on, are still the biggest advantage N64oid has over Mupen64Plus AE.  Speed optimizations would be the highest priority for me moving forward, as well as graphics bug fixes.  What are your programming strong points?  If you have a lot of OpenGL experience, help with the video plugins would be a good fit, with general c/ c++ or JNI then finding optimizations would be a good fit, with ARM assembly, then improving the dynarec would a good fit, or if Java then maintenance on the front-end would be a good fit.  You are certainly welcome to help out wherever you like though!  Between now and the soon-to-be released update, the focus is just on getting the app ready to publish, but after that priorities will shift to match the above.
Device: Samsung Galaxy Nexus i515
CPU: TI OMAP4460, 1.2 GHz (dual core, ARM Cortex-A9)
GPU: PowerVR SGX540, 307 MHz
RAM: 1 GB
Resolution: 720 x 1280
Rom: omni-4.4.4-20141014-toro-FML KitKat 4.4.4, rooted

Device: Eee PC 1015PEM
CPU: Intel Atom N550, 1.5 GHz (dual core, x86)
GPU: Intel GMA 3150, 200 MHz (dual core)
RAM: 2GB
Resolution: 1024 x 600
Rom: android-x86-4.3-20130725 Jelly Bean 4.3, rooted

Offline littleguy

  • Moderator
  • double
  • *****
  • Posts: 1945
    • View Profile
Re: Ready to start coding! - What area needs focus?
« Reply #2 on: January 05, 2013, 08:36:36 AM »
Fantastic!  To answer your last question, the latest build includes native analog support for Android 3.1 and up for all vanilla gamepads, including xbox and ps3 compatible controllers.  Wireless PS3 controllers are fully supported using the Sixaxis app in gamepad mode.  Analog control for Gingerbread is supported USB/BT Joystick Center (the market version also has this capability).

One of my main focuses is getting as many of the non-vanilla controllers working as well, such as MOGA, Nyko Playpad, Archos Gamepad, etc.  The problem with a lot of these controllers is that they try so hard to be backwards compatible with pre-HC devices that they actually make it harder to work with them in the vanilla way.  E.g. the Playpad seems to send multiple key codes for a single stick.  The Archos gamepad calls each stick an independent controller.  The MOGA controller might require a third-party app.  I think most of these issues are surmountable, but it just require us to identify their unique quirks.

Take a look at the "Finishing up the final pieces" thread to see some of the latest development plans.


« Last Edit: January 05, 2013, 08:53:56 AM by littleguy »
2012 Nexus 7, rooted stock Lollipop
Samsung Galaxy Victory, rooted stock Jelly Bean
Xperia PLAY, stock Gingerbread
OUYA, retail version

Offline zack

  • Developer
  • byte
  • *****
  • Posts: 36
    • View Profile
    • InfuseDreams
Re: Ready to start coding! - What area needs focus?
« Reply #3 on: January 05, 2013, 09:21:31 AM »
Great thanks guys.

I have C/C++ experience, java shouldn't be a biggie. Along with openGL/SDL experience.
I also worked on a snes emulator for the psp amongst other things. The last few years have been spent (and still are) as a framework engineer on a big name sdk for iOS/Android.

You can see my portfolio here: http://www.infusedreams.com/portfolio/

In my testing I tested both plugins, and my comparisons were rice vs rice for the most part.

I would be happy to help out on GUI, core and plugins. Or anything really. You have given me somewhere to start now, which is good.

My github user name is InfuseDreams.

PS My gamepad is a ipega bluetooth gamepad. As seen here: http://www.amazon.co.uk/Wireless-Bluetooth-Controller-Gamepad-Lujex/dp/B00AF5QC02

« Last Edit: January 05, 2013, 09:23:05 AM by zack »

Offline littleguy

  • Moderator
  • double
  • *****
  • Posts: 1945
    • View Profile
Re: Ready to start coding! - What area needs focus?
« Reply #4 on: January 05, 2013, 10:19:17 AM »
Cool controller, never seen that one.  I'll be curious to see if it works with the current build.
2012 Nexus 7, rooted stock Lollipop
Samsung Galaxy Victory, rooted stock Jelly Bean
Xperia PLAY, stock Gingerbread
OUYA, retail version

Offline Paul

  • Administrator
  • double
  • *****
  • Posts: 3499
  • Developer
    • View Profile
    • PaulsCode.Com
Re: Ready to start coding! - What area needs focus?
« Reply #5 on: January 05, 2013, 02:11:33 PM »
I added you to the repository.  Looking forward to working with you!

PS: For those curious, I previously worked on the daedalus x64 project for the PSP (N64 emulator for PSP)

Did you happen to do any work with the dynarec at all?  I've been meaning to try and get in touch with someone who worked on it to see if it would be possible to port it to Mupen64Plus or not (several new phones coming out have MIPS processors instead of ARM or x86, and I suck at assembly language myself).

Do these still apply?

Donkey Kong 64 isn't black screen - graphics are excellent.  The main problem with it is the lack of hit detection (can walk through everything, making it unplayable).  Conkers Bad Fur Day I wouldn't say has very bad graphics problems either (with gles2rice), but there are a few.  The main problem with it is the slow speed.

One simple thing that N64oid has right which Mupen64Plus AE doesn't is fog.  Our video plug-ins have an issue where the closest polygons sometimes get fully fogged (looks like a signing issue to me - where if a vertex is behind the camera, it gets treated like it is far away.  But that's just a guess).  I'd like to track this one down.  Since you've had some good experience with OpenGL, maybe you might have more luck than I have.
Device: Samsung Galaxy Nexus i515
CPU: TI OMAP4460, 1.2 GHz (dual core, ARM Cortex-A9)
GPU: PowerVR SGX540, 307 MHz
RAM: 1 GB
Resolution: 720 x 1280
Rom: omni-4.4.4-20141014-toro-FML KitKat 4.4.4, rooted

Device: Eee PC 1015PEM
CPU: Intel Atom N550, 1.5 GHz (dual core, x86)
GPU: Intel GMA 3150, 200 MHz (dual core)
RAM: 2GB
Resolution: 1024 x 600
Rom: android-x86-4.3-20130725 Jelly Bean 4.3, rooted

Offline zack

  • Developer
  • byte
  • *****
  • Posts: 36
    • View Profile
    • InfuseDreams
Re: Ready to start coding! - What area needs focus?
« Reply #6 on: January 05, 2013, 02:30:49 PM »
@Littleguy, it's not very good to be honest. Very cheap and nasty. Also have issues with it constantly requiring me to reconfigure inputs on various emulators on each power down/reboot.

I ordered one of these moga controllers: http://www.powera.com/moga
Looks better, I will test both when I get them and let you guys know.

@Paul:

Got the mail and access, thanks!
I also suck with assembly unfortunately. The fog thing I can look into. I did bring the snes emulator up to full speed on the PSP and i'm no stranger to optimisation. I will just have to familiarize myself with the source a bit before I just dive in. The fog issue I should be able to nail.

Do we have a bug tracker set up?
If not, can we get one?

Offline Paul

  • Administrator
  • double
  • *****
  • Posts: 3499
  • Developer
    • View Profile
    • PaulsCode.Com
Re: Ready to start coding! - What area needs focus?
« Reply #7 on: January 05, 2013, 02:35:51 PM »
We could use github's "issues" to track bugs, unless you know of a better solution (I'm always open to suggestions)
Device: Samsung Galaxy Nexus i515
CPU: TI OMAP4460, 1.2 GHz (dual core, ARM Cortex-A9)
GPU: PowerVR SGX540, 307 MHz
RAM: 1 GB
Resolution: 720 x 1280
Rom: omni-4.4.4-20141014-toro-FML KitKat 4.4.4, rooted

Device: Eee PC 1015PEM
CPU: Intel Atom N550, 1.5 GHz (dual core, x86)
GPU: Intel GMA 3150, 200 MHz (dual core)
RAM: 2GB
Resolution: 1024 x 600
Rom: android-x86-4.3-20130725 Jelly Bean 4.3, rooted

Offline zack

  • Developer
  • byte
  • *****
  • Posts: 36
    • View Profile
    • InfuseDreams
Re: Ready to start coding! - What area needs focus?
« Reply #8 on: January 06, 2013, 06:12:17 AM »
Fogbuz is great, but paid for http://www.fogcreek.com/fogbugz/
Since i'm presuming no money is made off this project, it would be an unwanted overhead.

I guess githubs issues should suffice.
If we haven't been doing so already, I think we should point people there to log a bug so we can keep track of them all and prioritise as needed.

Offline littleguy

  • Moderator
  • double
  • *****
  • Posts: 1945
    • View Profile
Re: Ready to start coding! - What area needs focus?
« Reply #9 on: January 06, 2013, 07:06:53 AM »
Yeah an integrated bug tracker system would be great.  We just added an automatic crash reporter (ACRA with BugSense as the endpoint ATM) so that should help with any FC bugs.

Paul - I'll make a popup for the help menu, like I just did for the about menu.  One button takes you to FAQ on the forum, another takes you to a report bugs page.  Which for now I'll just make github, but we can change it later if we want.
2012 Nexus 7, rooted stock Lollipop
Samsung Galaxy Victory, rooted stock Jelly Bean
Xperia PLAY, stock Gingerbread
OUYA, retail version

Offline Paul

  • Administrator
  • double
  • *****
  • Posts: 3499
  • Developer
    • View Profile
    • PaulsCode.Com
Re: Ready to start coding! - What area needs focus?
« Reply #10 on: January 06, 2013, 07:14:29 AM »
That sounds good.  I kind of suspect it will get flooded out of control with game-specific graphics glitches, but still could be useful to have them all in one place.
Device: Samsung Galaxy Nexus i515
CPU: TI OMAP4460, 1.2 GHz (dual core, ARM Cortex-A9)
GPU: PowerVR SGX540, 307 MHz
RAM: 1 GB
Resolution: 720 x 1280
Rom: omni-4.4.4-20141014-toro-FML KitKat 4.4.4, rooted

Device: Eee PC 1015PEM
CPU: Intel Atom N550, 1.5 GHz (dual core, x86)
GPU: Intel GMA 3150, 200 MHz (dual core)
RAM: 2GB
Resolution: 1024 x 600
Rom: android-x86-4.3-20130725 Jelly Bean 4.3, rooted

Offline Paul

  • Administrator
  • double
  • *****
  • Posts: 3499
  • Developer
    • View Profile
    • PaulsCode.Com
Re: Ready to start coding! - What area needs focus?
« Reply #11 on: January 06, 2013, 07:18:50 AM »
Once we have the donation version published, if it generates enough I'll look at Fogbuz.  Only making about $1 per week in donations from SlideMe right now :/
Device: Samsung Galaxy Nexus i515
CPU: TI OMAP4460, 1.2 GHz (dual core, ARM Cortex-A9)
GPU: PowerVR SGX540, 307 MHz
RAM: 1 GB
Resolution: 720 x 1280
Rom: omni-4.4.4-20141014-toro-FML KitKat 4.4.4, rooted

Device: Eee PC 1015PEM
CPU: Intel Atom N550, 1.5 GHz (dual core, x86)
GPU: Intel GMA 3150, 200 MHz (dual core)
RAM: 2GB
Resolution: 1024 x 600
Rom: android-x86-4.3-20130725 Jelly Bean 4.3, rooted

Offline littleguy

  • Moderator
  • double
  • *****
  • Posts: 1945
    • View Profile
Re: Ready to start coding! - What area needs focus?
« Reply #12 on: January 06, 2013, 07:24:21 AM »
I kind of suspect it will get flooded out of control with game-specific graphics glitches
Good point.  For now I guess we'll have to make good use of github's tagging system.
2012 Nexus 7, rooted stock Lollipop
Samsung Galaxy Victory, rooted stock Jelly Bean
Xperia PLAY, stock Gingerbread
OUYA, retail version

Offline zack

  • Developer
  • byte
  • *****
  • Posts: 36
    • View Profile
    • InfuseDreams
Re: Ready to start coding! - What area needs focus?
« Reply #13 on: January 06, 2013, 04:08:49 PM »
@Paul:

Couldn't you have the donation as a in-app billing item?

@Littleguy:

That sounds good, even if it gets littered with game specific bugs, like you said at least we will be able to keep track of everything.

Offline littleguy

  • Moderator
  • double
  • *****
  • Posts: 1945
    • View Profile
Re: Ready to start coding! - What area needs focus?
« Reply #14 on: January 06, 2013, 04:11:26 PM »
One benefit of in-app billing might be an ability for users to donate however much they want, and more than once. :D
2012 Nexus 7, rooted stock Lollipop
Samsung Galaxy Victory, rooted stock Jelly Bean
Xperia PLAY, stock Gingerbread
OUYA, retail version