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

Processing/Rendering Speed Inaccuracy #37

Open
a-barone opened this issue Jun 15, 2022 · 14 comments
Open

Processing/Rendering Speed Inaccuracy #37

a-barone opened this issue Jun 15, 2022 · 14 comments

Comments

@a-barone
Copy link

a-barone commented Jun 15, 2022

S32X Core version:
Release 20220607

Hi!

I recorded a couple of videos to show how the S32X core performs side-by-side with a real Genesis 32X setup in attract modes.
Some games run a bit slower than on real hardware (ex: Star Wars Arcade (see: #36), Space Harrier), but others have quite less slowdown (Mortal Kombat II, Virtua Fighter); so I thought it could be helpful to record such live comparisons.

I'm aware that ultimate accuracy is not the priority right now (though Processing/Rendering speed accuracy is also important for homebrew developers to be able to have in the S32X core a reliable performance reference since the existing emulators are completely unreliable in such aspects) but I believe these comparisons can be useful to understand some other issues as well.

Real Hardware (Left) | S32X Core (Right)

Virtua Fighter - There's a big performance gap in close-up camera angles; the S32X core is running them much faster than the real hardware.
https://youtu.be/QUrTnOcW5Q4

Mortal Kombat II - The title screen animation seems to slow down quite a bit more on real hardware. If you play the game, the Dead Pool stage has quite a different performance, with far fewer performance issues on the S32X Core, especially when hitting the opponent with uppercuts.
https://youtu.be/WS1Z5Zgaw8A

After Burner Complete - This is an interesting one. Despite the attract mode gameplay sequences being scripted, the end result seems to differ depending on the rendering speed.
While the first gameplay sequence goes identical, in the second one (around 2:00) the projectiles seem to hit different objects due to the scrolling speed and aircraft movement speed being different between real hardware and the S32X core; with the attract sequence having a fixed duration.
The attract sequence around 7:15 also shows a bit different partial outcomes; they seem to de-synchronize especially when the game has to render explosions.
https://youtu.be/Nu2XZxi1oV4

Space Harrier - Real Hardware is a tad faster with this one; the S32X core seems to be more prone to exhibit a bit of flickering when changing the priority of the sprites to go behind the score table.
https://youtu.be/z27mp21R9ys

@a-barone
Copy link
Author

a-barone commented Jun 17, 2022

S32X Core version:
Release 20220607

Hi!
When I was recording footage for another issue, I noticed that Motocross Championship runs a LOT faster on the S32X core than on real hardware; so I'll leave the recording here for reference:
Motocross Championship
Real Hardware (Left) | S32X Core (Right)

https://youtu.be/0hdru0YKyDs

@viciious
Copy link

viciious commented Jun 19, 2022

To be honest, I'd leave the current setup as an overclocking option :)

@thehughhefner
Copy link

@a-barone can you try with this build?
S32X_20221108.zip

@a-barone
Copy link
Author

a-barone commented Nov 9, 2022

@a-barone can you try with this build? S32X_20221108.zip

Yes, I'll try it later today and report the results today/tomorrow.
Thanks.

@a-barone
Copy link
Author

a-barone commented Nov 10, 2022

@a-barone can you try with this build? S32X_20221108.zip

@thehughhefner
Motocross Championship
Real Hardware (Left) | S32X Core (Right) (build 20221108)
https://www.youtube.com/watch?v=93r2qUrU2xQ

Virtua Fighter
Real Hardware (Left) | S32X Core (Right) (build 20221108)
https://www.youtube.com/watch?v=MWWkzXucBPY

@Toryalai1
Copy link

Hi @a-barone
Could you please revisit this issue ticket?
Here is the latest unstable s32x core: https://github.com/asturur/S32X_MiSTer/releases/download/unstable-builds/S32X_unstable_20231010_10fda8.rbf

@a-barone
Copy link
Author

Hi @a-barone Could you please revisit this issue ticket? Here is the latest unstable s32x core: https://github.com/asturur/S32X_MiSTer/releases/download/unstable-builds/S32X_unstable_20231010_10fda8.rbf

Hi! Yes, but it will take me a week as I'm currently away from home.
I'll post the results here once I test it at home.
Thanks.

@a-barone
Copy link
Author

a-barone commented Feb 7, 2024

Sorry for the long hiatus. I'll try to test it today/tomorrow.

@asturur
Copy link
Contributor

asturur commented Feb 28, 2024

@a-barone i made a couple of new builds, you seems to be knowleageble in game and having hardware to test it, if you want there is a feb 27 build with the saturn code put in without any real science behind it, to try

@Toryalai1
Copy link

Toryalai1 commented Apr 19, 2024

@a-barone did you manage to find time to test this? Please find unstable in the PR that asturur created or the official release. #49 (comment)

@a-barone
Copy link
Author

Hi @asturur @Toryalai1 !
After a long, long delay, I'm back.
Sorry for the absence, but I hadn't been able to have my setup in place before.

Here's an update to the comparisons, always with two recordings for each game:

  1. Real hardware vs stable release 20240418 (current)
  2. Real hardware vs unstable build 20240902_1265d7

Real Hardware (Left) | S32X Core (Right)

Virtua Fighter - There's still a noticeable performance gap in close-up camera angles; the S32X core is running them faster than the real hardware.
I didn't notice a meaningful difference between the stable and unstable builds:

  1. https://www.youtube.com/watch?v=2qdjD8zfENA
  2. https://www.youtube.com/watch?v=oJ4rTkFISFA

Space Harrier - Seems to be 1:1 with real hardware now:

  1. https://www.youtube.com/watch?v=EVA-aiDfxm0
  2. https://www.youtube.com/watch?v=zT1AjA89YGk

After Burner II Complete - This one has gotten closer to real hardware timings compared to the older recordings.
The unstable build is clearly a bit closer to real hardware timings; the second attract mode loop still shows a small difference in the ending though:

  1. https://www.youtube.com/watch?v=JHXlTTQpFh8
  2. https://www.youtube.com/watch?v=ahRFlBu1b68

Kolibri - I added this comparison because I noticed that the unstable build has introduced significantly more slowdown than the real hardware shows.
The stable build still had the core running faster than real hardware, but now it's the opposite: in the more recent unstable build it's the core that got quite slower than the real hardware.
Pay attention to the second attract mode loop:

  1. https://www.youtube.com/watch?v=yEbQtANWZLs
  2. https://www.youtube.com/watch?v=djc_kprYXQk

@asturur
Copy link
Contributor

asturur commented Nov 18, 2024

@srg320 also made additional changes to the saturn sh7604 so i wonder if in future more fixes will come down the pipeline for this core.

Thanks for taking the time to test again

@Zet-sensei
Copy link

I tried to backport the SH7604 changes from the Saturn branch to the S32x.

But some BSC changes seem to freeze the core on launch at the moment.
It's going to take a bit of time if I have to search function by function (I'm missing some at the moment) or wait for srg320 to do it by himself.

@srg320
Copy link
Collaborator

srg320 commented Nov 19, 2024

But some BSC changes seem to freeze the core on launch at the moment.
It's going to take a bit of time if I have to search function by function (I'm missing some at the moment) or wait for srg320 to do it by himself.

Yes, some tweaks are needed for 16-bit sdram mode in BSC.

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

No branches or pull requests

7 participants