Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dolphin iOS: Add Simple Skylander Portal #68

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

deReeperJosh
Copy link
Contributor

@deReeperJosh deReeperJosh commented Mar 14, 2023

With the Skylander Portal now in mainline Dolphin, I have seen a few requests come through (like here #60) to bring the functionality to Dolphin iOS, so this PR aims to implement that here. The only relevant commit is the most recent one, the rest have been cherry-picked from the main Dolphin Repo.

As a start, I haven't added the create Skylander Functionality, so users can either just use their existing Dumps or use ones they have created on Dolphin for Desktop.

I have tried to make it as simple as possible, and not clog up the UI - so Users can select to Load, Clear or Clear All. Load will load in to the next available slot (determined in the C++ code), Clear will clear the Skylander from the most recently used Slot, and Clear all will reset the portal.

If it would be better to create a Dialog Window with the full create, load and clear functionality, I can try to implement that further down the line, but for now the UIAlert is limited with what can and can't be done. Screenshots below:

Position in the Left Menu
IMG_0524

The Alert Dialog
IMG_0525

In Game
IMG_0526

@deReeperJosh deReeperJosh force-pushed the skylanderportal branch 2 times, most recently from c9d222f to e3e71c9 Compare March 14, 2023 04:13
@Spidy123222
Copy link

I do know that there is other games that also uses nfc characters like Disney Infinity. Do you think it could be used for such game or others? If so wouldn’t the name be better to describe it as load figure dump (Skylanders Portal), figuring manager (skylander manager).

@deReeperJosh
Copy link
Contributor Author

@Spidy123222 yeah I have got another PR open (dolphin-emu/dolphin#11546) to emulate the Infinity Base - but the structure for dumps for Infinity is much different and a lot more complex, would want a separate UIAction for that with different names

@OatmealDome
Copy link
Owner

Since there's a bunch of commits here that have been merged upstream already, would it be OK if I merged upstream on master and have you rebase this PR?

@deReeperJosh
Copy link
Contributor Author

@OatmealDome yeah of course - I'm happy with that

@deReeperJosh
Copy link
Contributor Author

Let me just take a bit of time to get this to only the one commit of things that are relevant - I might have missed a commit or 2 when cherry-picking

@deReeperJosh deReeperJosh force-pushed the skylanderportal branch 2 times, most recently from 5b5af9b to 0eb8c0c Compare March 14, 2023 05:54
@deReeperJosh
Copy link
Contributor Author

This is where I want it now - not sure about the XCode auto generated changes, but can revert those where needed

@@ -1234,6 +1234,11 @@ bool SkylanderPortal::CreateSkylander(const std::string& file_path, u16 sky_id,
return true;
}

bool SkylanderPortal::RemoveSkylanderiOS(u8 sky_num)
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason why RemoveSkylanderiOS and LoadSkylanderiOS exist? Can't you just call RemoveSkylander and LoadSkylander directly? I'm probably missing something here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wish I could explain this, but this was the only way that it actually worked - almost as if the objective c++ had a reference to a different system instance than the C++ lib, calling it directly had no effect on the game being played

@@ -197,6 +243,10 @@ - (bool)isWiimoteTouchPadAttached {
return true;
}

- (bool)emulateSkylanderPortal {
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This method doesn't seem to be used anywhere. Is this supposed to be used for conditionally adding the "Skylanders Portal" UIAction above?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah yes - think I had this in to try to conditionally display the menu item, was going to ask if you would be happy to convert the UIMenu items to instead be added with a UIMenuBuilder, I can make that change in this PR if so

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants