Mednafen Members Members   Search Search   Help Help   Register Register   Login Login   Home Home
Home » Mednafen » General » STV emulation requirements
Show: Today's Messages  :: Show Polls :: Message Navigator
Switch to threaded view of this topic Create a new topic Submit Reply
STV emulation requirements [message #6840] Thu, 02 February 2023 14:22
p_______j  [PM]
Hi,
I tried out the experimental STV support (thanks a lot for adding that!), and first thing I noticed is that it seems to run the games slower than the Saturn emulation. I tried out two games that have Saturn counterparts (Radiant Silvergun and Soukyugurentai), and while Saturn versions run more or less fine for me (my CPU isn't quite what you're recommending in the documentation but it is fine most of the time with occasional short stutters), STV versions of the games stutter a lot more to the point of not being very playable.
Should we expect STV to have higher hardware requirements for emulation? It is often said that STV is "basically a Saturn" (how true this actually is I don't know), so I didn't expect to have that particular problem.

Edit:
I guess it might be because of this? Saturn version shows:
    CPU Cache Emulation Mode: Data only

STV shows:
    CPU Cache Emulation Mode: Full
    Horrible hacks: SH-2 reads/writes from/to VDP1 slow down command execution.

and this is consistent with the docs, which say that Saturn games set these parameters per game from internal database while STV does not. Is there a way to try and force these parameters? (Would it even work for STV?)

Edit 2:
Okay, I made the worst patch ever and after very brief testing it does seem I gain the speed back. Didn't test for too long, don't do this at home, no responsibility etc etc.
--- src/ss/ss.cpp	2023-02-02 22:17:57.934163559 +0100
+++ src/ss/ss.cpp.patched	2023-02-02 22:18:01.780816565 +0100
@@ -1615,7 +1615,7 @@
 
    MDFNGameInfo->name = sgi->name;
 
-   InitCommon(CPUCACHE_EMUMODE_FULL, HORRIBLEHACK_VDP1RWDRAWSLOWDOWN, CART_STV, region, nullptr, gf, sgi);
+   InitCommon(CPUCACHE_EMUMODE_DATA, 0, CART_STV, region, nullptr, gf, sgi);
 
    if(sgi->rotate)
     MDFNGameInfo->rotated = MDFN_ROTATE90;

[Updated on: Thu, 02 February 2023 15:43]

  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic:Add Gameshark Code missing in GBA games
Next Topic:(Parsec) P2 XBOX controller issues
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ ]

Current Time: Sat May 11 07:17:52 CDT 2024
.:: Contact :: Home ::.

Powered by FUDforum.
Copyright © FUDforum Bulletin Board Software