-
Notifications
You must be signed in to change notification settings - Fork 7
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
Broken games or graphical issues report #9
Comments
This is pretty awesome! When I was fixing bugs in other games, a large chunk of the effort was just figuring out what SWIs were broken. So, if you can automate that, it would be incredibly helpful. Another, thing that could be really useful to automate is if you could generate a summary for each of the SWIs, how many games use that SWI (both working and non working), and how many broken games use that SWI. |
Hey there! So I can generate something like a list of SWIs that a game uses. (I just run it with the official BIOS so that it works well) This won't cover them all, since I do not play the game (just some dummy inputs to get past most start screens but not a lot, see https://www.davidgf.net/2021/08/15/miniretro/ -> there's videos at the bottom if you dont feel like reading and wanna see action). This should be incomplete but already very much useful for many games. Given there's so many games it's probably good enough if you miss a few SWIs here and there. With this information, we could already have some sort of idea of what the problematic SWI might be, right? However the "perfect" test would be to run both BIOSes, just using yours for one particular SWI number. Comparing results we could know if the SWI causes trouble or not. The only issue is that we need N*M tests (N being game count and M SWI count). Also might need a bit of work to enable some sort of dual-bios mode in mgba or similar emulator. So, should I start with the low hanging fruit and get you a SWI list per game? |
Just having the SWI list per game would be a great first start. If we have that, we could at least prioritize fixing the SWIs that will give us the most game coverage. |
The cpuset/fast routines must have some interesting bug (eyeballing I'd say the bits you check are wrong? According to tonc it's bits 24 and 26 that have a meaning), since games that only use those ones fail with your bios. |
Hey. Thanks for your effort here! And sorry for the very late response. |
Ah you are indeed right! Missread it! |
Thanks! I parsed your data to create a histogram showing what the most important SWIs to get correct are.
|
I only recorded SWIs in the [0, 64) range, since i used a 64bit bitmap. It is possible that there are more weird 64+ calls, but AFAIK they do ..nothing? so we should not worry. It's surprising that there are games doing that, perhaps they have bugs or it's an emulator bug too. |
Hey folks! Great work you are doing here :)
To help you a bit with finding games that have issues or are broken, I ran mgba with your BIOS and the official one and compared them. I run it for 9000 frames and then compare the outputs. There are obviously many differences since each BIOS takes a different amount of cycles and causes the game to drift slightly, but those can be ignored. Only cases where the output is obviously wrong (for instance FIFA 2004 or Doom II), or the game seems to hang/crash (for instance ZooCube, where it reboots to BIOS, or Super Street Fighter which seems to hang somewhere) are interesting for debugging.
Here goes the full report: https://davidgfnet-cultgba-mgba-testing-1c75d903.netlify.app/ (48MB!!!)
I could also classify the games on the SWIs they use automatically if you find it can be useful (might be easy to spot a pattern!), or I could even do automated A/B testing of the different SWI calls (by running both BIOSes and using the official one for some SWIs and yours for others).
Hope it is helpful :)
The text was updated successfully, but these errors were encountered: