My favorites | Sign in
Project Logo
                
Search
for
Updated Aug 06, 2007 by stepwhite
ControllerAbnormalities  

Since there is some controversy about the controller in the video... I'll try to clear it up here.

When I'm playing SMB, you can see Mario walks (and then runs) even though I'm not holding the buttons.

If you look closely, I press the button, then slide my finger down and release it.

When I press the button, it sends a "mouseDown:" event to my code (in the ControllerView class). I tell the emulator that the button was pressed.

Then if I slide my finger off the button and release my finger, it sends a "mouseUp:" event. However since my finger was not on a button, I can't relate the X/Y location sent in the event to a button. Thus I can't tell the emulator that a button was released.

If I release my finger while still on the button, the X/Y location sent in the event can be related to a button. And then I can tell the emulator that the button was released (as you can see when I jump).

The biggest issue here is that since it is a multitouch interface, many mouseDown:/mouseUp: events can be generated simultaneously.

Not knowing if a GSEvent in the mouseUp: specifies the original mouseDown: event, nor wanting to try and track/correlate mouseDragged: events, I left it as you see in the video/binary/code.

I hope to fix this and other controller related issues in the next few days.


Comment by taoyulong, Aug 07, 2007

It's great!

Comment by mts...@newthesaur.us, Aug 07, 2007

Hey step, if you want some help get a hold of me. I'm a visual designer and could help make the visuals tighter. Check out some of my stuff. http://www.newthesaur.us/DS/ you can hit me at mtseng@newthesaur.us

cheers, M

Comment by lukiferzero, Aug 07, 2007

Thank you so much, this is an awesome start! :)

Comment by dakotareese, Aug 07, 2007

If you do an usability evaluation strictly based on the Youtube video, the first thing that I would do to improve the control interface would be to have the emulator run in landscape mode and orient the controls in more of a PSP-esque configuration.

Awesome project though. Keep it up.

Comment by armstr...@sparklabs.com, Aug 07, 2007

Excellent work! With bugs worked out, this thing could be big. FYI: I'm a user experience designer, and would be very interested in contributing if you'd like the help. Specifically, I've got an idea on how to make the controls much more natural feeling. Check out some of my projects at www.SparkLabs?.com , www.SparkBrand?.com , and www.WeoGeo?.com With some national awards for UI design under my belt, and experience within the game industry, I stand to add to the synergy happening here.

Regardless, congratulations on a great start! Charles

armstrong@sparklabs.com

Comment by noouch, Aug 08, 2007

I'm no coder, but I think you could easily solve this by recording the position of the cursor when MouseDown? was sent, and when you get a MouseUp?, check to see which MouseDown? event was closest and release the button depressed by it. Either that, or you could just make it use something like MouseOver? (if you have the possibility), but I don't know what other problems that might bring with it.

Comment by jesseanddawn, Aug 08, 2007

when will this work for mac users?

Comment by jesseanddawn, Aug 08, 2007

when will this work for mac users?

Comment by dominican737, Aug 08, 2007

how do you install it on your iphone??? email me at dominican_737@hotmail.com please

Comment by dominican737, Aug 08, 2007

how do you install it on your iphone??? email me at dominican_737@hotmail dot com please

Comment by ewmailing, Aug 08, 2007

Without knowing much about anything, maybe you could use trackingRects or maybe use custom NSCells for each of the controller buttons to avoid the ambiguity problem with mouseDown/Up?

Comment by diamant.alon, Aug 09, 2007

There is no big problem tracking the mouseDragged event and comparing it to the known active mouseDown events, and updating the closest one (by distance). Of course, the problem is that each mouseDown event now needs to constitute of an "action" - you need to know what to do when the mouseUp finally happens. But that can be solved in many ways... :)

Comment by bill.hatcher, Aug 13, 2007

People like you are what make the internet great. Thanks for this.

Comment by musgrove, Aug 13, 2007

I'm also confused as to how to install. Could you drop me a line at musgrove (at) gmail (dot) com if you get a chance ?

Comment by thisistonesemail, Aug 19, 2007

someone email me steps to install also please @eyefonetone@gmail.com

Comment by thisistonesemail, Aug 19, 2007

someone email me steps to install also please @eyefonetone@gmail.com

Comment by gracies04, Aug 23, 2007

Hi I really dont know how to download this into my phone but could you send me the steps. Im really intrested in learning. My email is Gracies04@gmail.com

Comment by gracies04, Aug 23, 2007

Hi I really dont know how to download this into my phone but could you send me the steps. Im really intrested in learning. My email is Gracies04@gmail.com

Comment by Shon.Pierre, Aug 30, 2007

How do i get the Roms in, I downloaded the it but it has no games in the folder.

Comment by buganamo, Sep 14, 2007

I haven't gotten too deep into iPhone development (BUT AM DYING TO DO SO!), but I can recommend that one of the most needed features is to develop some way of either capturing multiple button presses with one finger, or "mod" the NES controller graphic to show intermediate buttons. For example, you want to move diagonally on the d-pad, or, you're running in mario brothers, holding b, and you rock your thumb on to a, so that you're still holding b, and you don't lose speed while you run. Likewise, a dual a-b tap is not possible without discreetly using two fingers, so I can't jump or hyper-knee in Double Dragon.

But damn, what you've done so far is AWESOME. Let me know if there is any way I can help.

-Pete

Comment by buganamo, Sep 14, 2007

I haven't gotten too deep into iPhone development (BUT AM DYING TO DO SO!), but I can recommend that one of the most needed features is to develop some way of either capturing multiple button presses with one finger, or "mod" the NES controller graphic to show intermediate buttons. For example, you want to move diagonally on the d-pad, or, you're running in mario brothers, holding b, and you rock your thumb on to a, so that you're still holding b, and you don't lose speed while you run. Likewise, a dual a-b tap is not possible without discreetly using two fingers, so I can't jump or hyper-knee in Double Dragon.

But damn, what you've done so far is AWESOME. Let me know if there is any way I can help.

-Pete

Comment by buganamo, Sep 14, 2007

I haven't gotten too deep into iPhone development (BUT AM DYING TO DO SO!), but I can recommend that one of the most needed features is to develop some way of either capturing multiple button presses with one finger, or "mod" the NES controller graphic to show intermediate buttons. For example, you want to move diagonally on the d-pad, or, you're running in mario brothers, holding b, and you rock your thumb on to a, so that you're still holding b, and you don't lose speed while you run. Likewise, a dual a-b tap is not possible without discreetly using two fingers, so I can't jump or hyper-knee in Double Dragon.

But damn, what you've done so far is AWESOME. Let me know if there is any way I can help.

-Pete

Comment by lumbergh, Sep 18, 2007

my goodness. people, people.

Best way to install this is to use Installer.app. Google "Installer.app" or "apptapp". You will need a Mac. There is a way to do it on the PC, but like with most things, it's way more painful on the PC.

Best way to get ROM's is to scour the Internet, or your geekier friends. It is really not a difficult exercise if you are motivated. NOBODY is going to link to anything though as it's still considered illegal. So STOP ASKING.

I'm just glad I got Tetris and Donkey Kong, though the current control issues make SMB3 almost impossible to control...

Comment by rick.weber.III, Oct 16, 2007

As a possible solution, could you not make each button be an instance of the NSView class? This would allow the buttons to independently receive mousedown and mouseup events. I'm not an iPhone developer, but I've written cocoa apps for OS X. While you typically want to avoid making lots of views if you can avoid it, I don't think a view for each button would necessarily cause problems.

Comment by namjam105, Feb 09, 2008

Add Source installer : http://iphonebaidu.com/app/ Test iPhone - iPhone Simulator : http://iphonebaidu.com/test/ All Software for Apple MAC : http://iphonebaidu.com/mac-iphone/ All Software for Apple iPhone : http://iphonebaidu.com/mac-iphone/iphone.html

Install iTransformy (.swf) view for iPhone : http://iphonebaidu.com/beta/ Forum, DOwnload Themes, Apps for iPhone. http://iphonebaidu.com/forum/

Copyright © 2008 iPhone Baidu! Inc. All rights reserved

Comment by Ralph.Lam, Mar 18, 2008

Is there any controller hardware accessory plug into the iphone to replace this software buttons?

Comment by mastastealth, May 27, 2008

Would it be possible to add bluetooth connectivity for a Wiimote to use as a control instead?


Sign in to add a comment
Hosted by Google Code