2020-12-08 22:01 阅读 0

MPC Multiplayer

Loved GBA4iOS 2.1 beta ability to do gamelinks using MPC.

I'd love to try helping out to add this functionality to Delta.

Have you planned on adding this?


  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

4条回答 默认 最新

  • weixin_39963523 weixin_39963523 2020-12-08 22:01

    Just curious if this is allowed. I read somewhere that this was one of the reasons 2.1 got taken down

    点赞 评论 复制链接分享
  • weixin_39572442 weixin_39572442 2020-12-08 22:01

    I believe the primary reason 2.1 was taken down was due to an added feature of the in-app web browser. It was changed so that the browser would default to a certain ROM download website. Nintendo saw this and was able to get it pulled down due to the “promotion of piracy.” The thin line for emulators has always been: Where do the users get their ROM’s?

    点赞 评论 复制链接分享
  • weixin_39963523 weixin_39963523 2020-12-08 22:01

    Interesting. I've been digging through 2.1 to see how the link emulation works. I'm not really familiar with visual boy advanced, or any emulation as far as that goes but the implementation seems somewhat easy.

    GBA4iOS supports GBC games, but doesn't seem to require different implementations for GBA vs GBC. Delta has completely different cores for each so I'm not sure how that will affect implementation. Possibly will require separate work for GBCDeltaCore as well as GBADeltaCore.

    So basically, all my research is specific to GBA and hopefully that can be easily applied to GBC games as well.

    GBABluetoothLinkManager, GBALinkManager, GBAPeer objects need to be created inside GBADeltaCore. These objects can be taken from GBA4iOS and re-written in Swift if needed. I'm up to that task.

    It looks like every core has an emulator bridge object responsible for interfacing with the VBA code. So inside of GBAEmulatorBridge it looks like we can just use most of the code from GBAEmulatorCore.mm in GBA4iOS. I've already done this. Most of the errors are handled except for a few where GBALink.h is different than the only in GBA4iOS. One example: GBARunWirelessAdaptorLoop() does not exist inGBALink.h anymore. I'm not sure if this is because there is a new way to do this, or if VBA removed this functionality in the version Delta is using. Do you know? Seems like 2.1 was the only emulator in existence with linking enabled, and maybe there are more reasons than difficulty.

    So basically this isn't as crazy hard as I was thinking once I dug into it, except I still don't understand how it all works and it could be impossible or way harder. Any advice you can give would be awesome

    Pokemon games are only awesome if you can play with your mates. I'm willing to work on this but again wondering if you're already planning on it or if you left it out for a reason

    点赞 评论 复制链接分享
  • weixin_39963523 weixin_39963523 2020-12-08 22:01

    Okay so GBALink has been updated for sure. I'm digging through it to understand it.

    One issue with multiplayer in the past was the speed that MPC protocol allows. Considering implementing using Core Bluetooth. Goal is to make a controller generic enough that in the future it will be easy to use multiple different connections

    Another consideration is UI. Because this is specific to GBA I think it makes most sense to trigger all the linking settings only inside a GBA emulator

    点赞 评论 复制链接分享