flyinghead / flycast

Flycast is a multiplatform Sega Dreamcast, Naomi, Naomi 2 and Atomiswave emulator
GNU General Public License v2.0
1.45k stars 174 forks source link

VMU not working properly with Gameshark versions #1135

Open joelos1111 opened 1 year ago

joelos1111 commented 1 year ago

Platform / OS / Hardware: Android 11

Github hash:

Hardware: Samsung A11

Description of the Issue

In previous versions of Flycast i was able to run properly the various versions of Gamesharks even the hacked one and had no problems whatsoever but after the latest updates of the Flycast app for some unknown reason none of the Gameshark versions out there are able to read at all the hacked codes copied in the VMU A1 port, again in the previous versions i had no issues using Gameshark to play the games but in the latest updates there's this kind of annoying problem with the VMU's not being readable or accesible by Gameshark properly. I'd highly appreciate if you can fix this bug in an upcoming update or tell me what are the steps that i should follow in order to play the games normally using any Gameshark version like i used to do before.

Debugging Steps Tested

Logs Gathered


Please paste the contents of the log / logs here
You may leave this field blank if you have none.

Screenshots

Screenshot_20230702-200356_Flycast Screenshot_20230702-200540_Flycast Screenshot_20230702-202928_Flycast

Notice that when i save any configuration from the Gameshark into the VMU then the memory blocks appear to not function in a correct way as you can see in the above screenshots, as i said it doesn't matter if i have hundreds of Gameshark codes saved on the VMU, now they are unreadable or inaccesible, this certainly didn't occured to me in previous versions of Flycast

flyinghead commented 1 year ago

Indicate the version of Flycast you are using, and the last version that didn’t have the issue you’re describing

joelos1111 commented 1 year ago

Ok, i tested it and everything worked fine for me until this Flycast version:

ee806bc 2023-05-30T13:56:46.000Z

ee806bc 2023-05-30T13:56:46.000Z

From that version on i started having that problem with playing games but only when using Gameshark. I hope you are able to fix this issue in an upcoming version, i'd appreciate it so much Flyinghead

Screenshot_20230703-132855_Flycast

Above screenshot is with version ee806bc

Screenshot_20230703-133152_Flycast

Above screenshot is with version 76af42a

76af42a 2023-05-23T08:23:40.000Z

76af42a 2023-05-23T08:23:40.000Z

flyinghead commented 1 year ago

I can't reproduce the issue using the latest build: image

However there is now a new option to have each game use its own A1 vmu. If enabled, GameShark will not use the usual vmu_save_A1.bin file. image

joelos1111 commented 1 year ago

I am using Android 11 and the latest build is

a870fb7 2023-06-30T16:19:21.000Z

a870fb7 2023-06-30T16:19:21.000Z

If i install that build on my phone then Gameshark won't work correctly in any way. I already tried the "Per Game VMU A1" and still have this problem with VMU A1 not being readable by Gameshark, in fact when i check that new option you mentioned above and then i go to Gameshark and save a Configuration it doesn't even appear anywhere i mean VMU A1 stay completely blank and trust me when i say that i also tried doing this same procedure on other Android phones that i own but so far I haven't found a work around much less a solution for this issue, i mean the only way to see Gameshark working great is by installing this build

76af42a 2023-05-23T08:23:40.000Z

76af42a 2023-05-23T08:23:40.000Z

I also tried formatting the VMU several times but always end up with the same problem. I don't know if probably the Bios could the problem (i have the current standard Bios you can easily find online) but already tried other Bios to no avail. I hope you can find a solution for this bug soon Flyinghead because i really don't know what else to do to fix it. Thanks in advance

flyinghead commented 1 year ago

Is it specific to GameShark? Have you tested if other games can save to the VMU? Can you delete/move VMU saves using the dreamcast BIOS?

joelos1111 commented 1 year ago

Same issue happen with Gameshark and also with Action Replay versions but Codebreaker still works fine, other games without using Gameshark save to the VMU in a normal way, i also can copy the Gameshark codes to the other VMUs or delete them without any issues but you see i just found a workaround, i noticed that in the last screenshot you posted here that you only had one VMU activated and the others 7 disabled, this isn't my case, i mean i always like having enabled all of the 8 VMUs for every game all the time, so i went straight to the control options and only left enabled/activated VMU A1/A2 and Voilà GameShark 3.3 reads perfectly all of the hacked codes correctly but if i enable another VMU port let's say B1/B2 then the problem is back again. Well to be honest is kind of annoying that i need to disable all of the other VMUs every time that i am going to use GameShark but at least i can use it now, of course this isn't still a Solution per se and hope you are able to fix this in the upcoming builds. Thanks

flyinghead commented 1 year ago

Interesting find.

Note that you can change the controller and vmu configuration when the emulator is running, so you can still enable all vmus once GameShark has started the game.

flyinghead commented 1 year ago

Enabling all VMUs does indeed trigger the problem. However GameShark is sending a lot of bogus data to the maple controller while trying to read the VMUs. It's very possible that this is a gameshark bug.

Some games have bugs that prevent them from booting with more than 2 controllers attached for example.

joelos1111 commented 1 year ago

Thanks a lot Flyinghead for your concerns and advices, i already knew that you can enable the other VMUs and change other Flycast configurations once the game has started but still that doesn't solve the Issue completely. I don't know a s%$t about programming but i guess this bug between GameShark and the VMUs probably has to do with the new options you added or maybe is only a bug that GameShark and Action Replay Versions has?, again i don't know but what i'm really sure about is that GameShark 3.3 worked great having all 8 VMUs enabled in previous versions of Flycast like the one i mentioned in above comments, you can test it for yourself bro. Anyhow, I like/love where this app is heading and truly appreciate your efforts in making it look and function much better as days/months passes by but bro i think it would be wonderful if you can dig more into this bug and try to find a real solution for it. Anyway you can close this issue if you want because i just found a workaround in order to play the Games using GameShark v. 3.3, so thank you so much for your help and keep up the good work bro👍. I'll let you know if something related to this bug change in the upcoming Android builds

kihato commented 1 year ago

I did a little research. cab02c8: Unable to reproduce (left image) 095e5ed: reproducible (right image)

CDX

CDX_VMU

Apparently, inserting a VMU into A1 of port C causes a bug. So if you don't use A1 on port C, you have 7 remaining VMUs available.