Coder Social home page Coder Social logo

Comments (29)

ChiefBradley avatar ChiefBradley commented on May 5, 2024

I'd like to second that motion, I get a lot of mileage out of mine with my android tablet. It'd be a nice little bonus option.

from provenance.

thundercato avatar thundercato commented on May 5, 2024

I have to admit I would love being able to use my iCade with this emulator. thanks :)

from provenance.

Keloran avatar Keloran commented on May 5, 2024

👍

from provenance.

josejulio avatar josejulio commented on May 5, 2024

+1

from provenance.

josejulio avatar josejulio commented on May 5, 2024

is anyone working on this?

from provenance.

jasarien avatar jasarien commented on May 5, 2024

I don't have any plans to implement this myself. I don't have any of the listed controllers so wouldn't be able to test them. MFi game controllers are supported. If someone else wants to implement this and make a pull request I'll be happy to merge it in.

from provenance.

josejulio avatar josejulio commented on May 5, 2024

I just ordered a nes30 pro(which has an iCade mode), once it arrives i'll seriously consider to implement this myself. Thanks.

from provenance.

josejulio avatar josejulio commented on May 5, 2024

iCade mode works as a bluetooth keyboard, with events to handle the buttons pressed (https://github.com/stuartcarnie/iCade-iOS/blob/master/iCadeTest/iCade/iCadeReaderView.h)

Did some google searchs and dug a bit on the iOS sdk, and seems that detecting if a external keyboard is not possible (workarounds use UIKeyboardWillShowNotification, since the keyboard never shows i guess that it won't be the case), another way is to listed to some private API to know if an external keyboard is connected, but after a bit of though, an external keyboard doesn't mean that the user has an iCade controller.

So i'm guessing that the user could actually choose if he wants to use an iCade controller (in settings) or have the iCade controller always listening.

Also, for the actual inner working, I'm thinking on create a classes that implements the GCControllerDirectionPad and GCControllerButtonInput to make it compatible with the actual implementation of PVControllerViewController.

May i know your thoughts on this?

edit: Also, i have been trying to figure out where to put the iCade lib(3 files) and the PViCadeController code (that uses the iCade lib).

from provenance.

josejulio avatar josejulio commented on May 5, 2024

I have raw implementation, needs to tune some details, and add a configuration for the controller, like Listen for iCade Controller, but it works, for anyone wanting to test it out, you can get it from https://github.com/josejulio/Provenance, i'll send a PR once I finish. Would be nice to hear comments about it.

from provenance.

axroberts avatar axroberts commented on May 5, 2024

Great work jose! Works like a charm with my SNES 8bitdo controller!

from provenance.

josejulio avatar josejulio commented on May 5, 2024

Thanks, though it still needs a bit more of work.

from provenance.

 avatar commented on May 5, 2024

I agree. It works great, with a few small issues you may already be aware of:

  1. The major one that i can see is that the controller doesn't disconnect from the game when you exit, which then makes it unavailable for the next game.

  2. Another issue/request is that it doesn't detect which type of controller is being connected, which then messes with button mapping. I have both the NES30 and the NES30 Pro; the NES30 works great, but the NES30 Pro buttons are all over the place.

  3. The previous issue could perhaps be solved by either having controller detection, which seems a little cumbersome, or you could implement a customize button mapping feature. This could be done on a system by system basis, or a global one.

All in all, great work!

from provenance.

josejulio avatar josejulio commented on May 5, 2024

I'm aware of those issues, thanks for your comments. I'm going to try to guess the controller with some private API(if possible) or let the user choose which iCade layout he wants to use (Standard iCade controller, Nes30, Nes30 Pro, ...).

from provenance.

 avatar commented on May 5, 2024

I'm not sure if this helps or not, but 8bitdo just released a firmware update for the NES30 Pro (v. 1.62) yesterday that remaps the iCade's buttons. They're now the same as the NES30, so the Pro is working great now. It would, however, be nice if, like with the MFi controllers, there was a way to access the menu from the controller, and for both types of controllers, be able to navigate that menu from it. I think there may be an issue already addressing that, though.

from provenance.

 avatar commented on May 5, 2024

I did just notice one more small issue with the iCade controller. Since it technically is a keyboard, Provenance/iOS thinks that it is, indeed, a wireless keyboard. This then disables the software keyboard, which then makes the search basically useless.

from provenance.

josejulio avatar josejulio commented on May 5, 2024

Didn't know! Awesome, in that case i will only create a 8bitdo controller and icade standard.

As for the be able to navigate, I might look what can be done with that. Thanks for the info.

from provenance.

josejulio avatar josejulio commented on May 5, 2024

Yeah, that's an iCade controller issue, though maybe there is a private api to by-pass that.

from provenance.

josejulio avatar josejulio commented on May 5, 2024

@cortneytaylor I tested the 1.62 with my nes30 pro, and with the current setup A&B and X&Y are the other way around (A is B and X is Y), tested in mario rpg, so is pretty obvious there. Could you confirm that it also happens on your nes30 and nes30 pro?

from provenance.

 avatar commented on May 5, 2024

Yep, it's the same on both controllers. I just got used to it and forgot to add that to the issue.

from provenance.

josejulio avatar josejulio commented on May 5, 2024

Great! I'm finish on these features and will soon push to https://github.com/josejulio/Provenance

  1. A, B, X & Y are correctly mapped.
  2. The controller "disconnects" on game finish (no longer crash when pressing a button after the game finishes and still works on next game)
  3. You can select what kind of iCade controller layout should use on Settings, "Disabled, Standard controller (i just made up a controller layout with this on mind josejulio#3) and 8bitdo nes30 (compatible with nes30 and nes30 pro with v1.62 firmware). Disabled is the default option, any thoughts on this?

Next i would like to try the following:

  1. Detect the controller (if possible) and add the "Autodetect" option (and maybe remove the disabled one)
  2. If the former is possible, also try to detect when you disconnect the controller
  3. Add an option to "disconnect" and repaint the gui.

from provenance.

rimiex avatar rimiex commented on May 5, 2024

Josejukio hello. Sorry for being such a noob, but how can i upload that on my provenance emulator? Would love to play it with icade and ipega

from provenance.

josejulio avatar josejulio commented on May 5, 2024

Hey @rimiex, this is already merged on the last version of Provenance. You can enable it on settings "iCade Controller" and choose Standard Controller. Now you can connect your iCade controller to your iOS device, start a game, and press any key on your iCade Controller, the HUD control will disappear and you will be able to control the game with your iCade. There seems to be a problem when loading a game(at least it happens with the nes30 pro), that makes the iCade Controller laggy on the first seconds, but after (about 20 seconds or so) you will be able to play without lag from the controller.

from provenance.

Alazoral avatar Alazoral commented on May 5, 2024

I would love to see an option to remap buttons so you can play NES games with the ergonomically superior B+Y (or A+X) instead of A+B.

from provenance.

jasarien avatar jasarien commented on May 5, 2024

Closing this issue as the feature has been implemented by josejulio via pull request.

from provenance.

tristan-k avatar tristan-k commented on May 5, 2024

is it possible to connect to icade controllers at the same time to enable multiplayer? I'm using two ipega 9017's.

from provenance.

josejulio avatar josejulio commented on May 5, 2024

I don't think that there is a way to do so, unless ipega 9017 supports iCade player 1 and iCade player2 configurations, like http://gamedock.tv/ (but I'm unsure if it does. I'll try to take a look at the info on the controller.

from provenance.

KULIK121 avatar KULIK121 commented on May 5, 2024

@josejulio can you help me with how to connect my 8Bitdo nes30 pro with provenance for tvOS?

from provenance.

Jay4160 avatar Jay4160 commented on May 5, 2024

Why is it when I connect my nes30 pro with provenance start is the jump button and A is start

from provenance.

franky-supero avatar franky-supero commented on May 5, 2024

Hi I use an iPega 9023 Controller, I can just used PSX game and GBA and working perfectly in Icade mode on my iPad IOS 13.1.3 , only issue is that the D-pad doesn't for ex: up, down, left, right or the Analog stick for navigation. (running Provenance 1.5 beta)

from provenance.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.