Closed yisandind closed 2 months ago
Thanks for the report.
It looks like SFXRework = 0
is the configuration that matters here.
It's not "the culprit" in the sense that you should enable it back, but I think that bug doesn't happen when SFX Rework is enabled and that's why we missed that bug.
ok. thank you. now playing smoothly.
https://github.com/user-attachments/assets/68019ea2-d945-425e-b1e2-63872f690fba
Memoria.ini file :
[Mod] ; Custom configurations and/or assets are loaded from custom folders inside the "FINAL FANTASY IX" root folder ; The "Priorities" field is only a hint for the Launcher's Mod Manager; mod priorities in-game are still defined by their order in "FolderNames" ; UseFileList (default 1) 0 = Don't use mod file lists / 1 = Do not generate the missing file lists of Mod Folders when launching the game but use it if it exists / 2 = Generate "ModFileList.txt" of active mods ; MergeScripts (default 0) 0 = Don't attempt to merge scripts, top most mod gets priority / 1 = [Experimental] Attempt to merge scripts, if a conflict is detected top most mod takes priority FolderNames = "MoguriMain", "MoguriVideo" Priorities = "MoguriVideo", "MoguriMain" UseFileList = 1 MergeScripts = 0
[Font] Enabled = 0 Names = "Arial", "Times Bold" Size = 24
[Audio] ; PriorityToOGG (default 0) When enabled, ".ogg" audio files are used instead of the ".akb.bytes" counterpart when both exist; the AKB header is then generated again at each usage ; Backend (default 1) Choose the audio backend. 0 = SdLib, legacy backend (not recommended) / 1 = Soloud, new better sounding backend MusicVolume = 100 SoundVolume = 100 MovieVolume = 100 PriorityToOGG = 0 Backend = 1
[Graphics] ; BattleFPS (default 60) Controls the fluidity of battle graphics (frame per second) ; BattleTPS (default 15) Controls the speed of battles (tick per second) ; FieldFPS (default 60) Controls the fluidity of field graphics ; FieldTPS (default 30) Controls the speed in fields ; WorldFPS (default 60) Controls the fluidity of world map graphics ; WorldTPS (default 20) Controls the speed in world maps ; MenuFPS (default 60) Controls the fluidity of other modules ; BattleSwirlFrames (default 0 / PSX 115) is the number of frames "swirling" before a battle ; WidescreenSupport (default 1) activate Widescreen for 16:9 screens ; SkipIntros (default 0) 0 = Don't skip / 1 = Skip logos / 2 = Skip logos and movie / 3 = Don't loop at the title ; GarnetHair (default 0) 0 = Default / 1 = Long / 2 = Short ; TileSize (default 32) Vanilla 32 / Moguri Mod 64 ; AntiAliasing (default 8) Must be either 0, 2, 4 or 8: enable Unity's anti-aliasing algorithm to improve the render of 3D model edges ; CameraStabilizer (0 to 99, default 85) Adds a smooth delay on the camera following the player. Value represents "stickiness" of camera to its original position, each frame. ; FieldSmoothTexture (default 1) Backgrounds filtering. 0 = none (squarely defined pixels, like PSX), 1 = Bilinear, 2 = Trilinear ; WorldSmoothTexture (default 1) Worldmap texture filtering. 0 = none (squarely defined pixels, like PSX), 1 = Bilinear, 2 = Trilinear ; BattleSmoothTexture (default 1) Battle maps texture filtering. 0 = none (squarely defined pixels, like PSX), 1 = Bilinear, 2 = Trilinear ; ElementsSmoothTexture (default 1) Characters/monsters/items texture filtering. 0 = none (squarely defined pixels, like PSX), 1 = Bilinear, 2 = Trilinear ; SFXSmoothTexture (default -1) SFX texture filtering. -1 = don't force any change, 0 = none (squarely defined pixels, like PSX), 1 = Bilinear, 2 = Trilinear ; UISmoothTexture (default -1) UI elements texture filtering. -1 = don't force any change, 0 = none (squarely defined pixels, like PSX), 1 = Bilinear, 2 = Trilinear Enabled = 1 BattleFPS = 60 BattleTPS = 15 FieldFPS = 60 FieldTPS = 30 WorldFPS = 60 WorldTPS = 20 MenuFPS = 60 MenuTPS = 60 BattleSwirlFrames = 100 WidescreenSupport = 1 SkipIntros = 0 GarnetHair = 0 TileSize = 32 AntiAliasing = 8 CameraStabilizer = 85 FieldSmoothTexture = 1 WorldSmoothTexture = 1 BattleSmoothTexture = 1 ElementsSmoothTexture = 1 SFXSmoothTexture = -1 UISmoothTexture = -1
[Control] ; DisableMouse (default 0) 0 = Can use the mouse to navigate in menus and move on the fields / 7 = Disable the mouse completly / 1 = Disable mouse for field menus and dialogs / 2 = Disable mouse for field movements / 4 = Disable mouse for battle menus ; DialogProgressButtons (default "Confirm") A list of buttons that can be used to progress in cutscene dialogs; the PSX version used "Confirm", "Special" ; WrapSomeMenus (default 1) 0 = Don't wrap selection in menu that don't natively wrap it / 1 = Wrap selection for easing menu navigation ; BattleAutoConfirm (default 1) 0 = Confirm needs to be pressed repeatedly / 1 = Holding Confirm will automatically validate commands during battle and progress the battle result screen ; TurboDialog (default 1) F9 - Toggles the automatic skipping of basic dialogs. Alternatively Holding Shift + Confirm or Right Bumper + Confirm also skips dialogs automatically. ; SoftReset (default 1) [Pause + F8] / [L1+R1 + L2+R2 + start + select (PSX)] - Back to Main Menu instantly # [DV]: I've used this feature hundreds of times and never had a problem... but be careful, bugs can happen! ; PSXScrollingMethod (default 1) 0 = Use the native Steam scrolling pattern / 1 = Scroll lists with the same behaviour as the PSX version ; PSXMovementMethod (default 1) 0 = Use the native Steam move pathing method, which makes movements faster on sloping paths / 1 = Use the PSX move pathing method ; AlwaysCaptureGamepad (default 1) 0 = Gamepad inputs are ignored when the game windows doesn't have focus / 1 = Gamepad inputs are always in effect Enabled = 1 DisableMouse = 7 DialogProgressButtons = "Confirm" WrapSomeMenus = 1 BattleAutoConfirm = 1 TurboDialog = 1 SoftReset = 1 PSXScrollingMethod = 1 PSXMovementMethod = 1 AlwaysCaptureGamepad = 1
[AnalogControl] ; StickThreshold (default 10) 0->100, threshold under which there is no movement ; MinimumSpeed (default 5) Minimum walking move speed (can't exceed 30) ; UseAbsoluteOrientation (default 0) 0 = Have movement orientation adapted to walkpath (WO) / 1 = Absolute orientation (AO) / 2 = WO for analog sticks, AO for D-pad and keys / 3 = WO for D-pad and keys, AO for analog sticks (behaviour of the PSX version) Enabled = 1 StickThreshold = 10 MinimumSpeed = 5 UseAbsoluteOrientation = 0
[Battle] ; SFXRework (default 1) Use the reworked system of battle SFX (required for Speed types 3 and above) ; Speed (default 0) 0 = Default / 1 = Fast / 2 = Turn-based / 3 = Simultaneous, targets can't attack, turn-order respected / 4 = Simultaneous, targets can't attack / 5 = Simultaneous ; NoAutoTrance (default 0) Disable automatic trance ; EncounterInterval (default 960) The distance to travel between random encounter checks ; EncounterInitial (default -1440) -1440 = Default / Negative numbers give some walk time with no encounter check when entering a field ; PersistentDangerValue (default 0) 0 = Default / 1 = Random encounter danger value doesn't reset on field transitions ; PSXEncounterMethod (default 0) When enabled, the change in the random encounter method that makes them less frequent than for the PSX version is reverted ; AutoPotionOverhealLimit (default -1) Maximum overheal in percents, -1 to disable a new behaviour ; GarnetConcentrate (default 0) 0 = Default / 1 = Disable "Garnet can't concerntrate" ; SelectBestTarget (default 1) 0 - Original / 1 = Estimate the best target via IEstimateBattleScript ; BreakDamageLimit (default 0) When enabled, damage are not capped at 9999 anymore ; ViviAutoAttack (default 0) 0 = Default attack / 1 = One basic elemental spell (cost-free MP) ; CountersBetterTarget (default 0) 0 = Default / 1 = Return Magic is multi-target if the original was multi-target and Counter's target gets re-targeted if the attacker gets untargetable ; LockEquippedAbilities (default 0) 0 = Default / 1 = Supporting abilities are used if and only if they are on an equipped weapon or armor / 2 = Active abilities are available if and only if they are on an equipped weapon or armor / 3 = Same for both supporting and active abilities ; FloatEvadeBonus (default 0) Give a bonus evasion with float against non-floating attacks ; also change the "Miss" repositioning of enemies having Auto-Float when positive ; AccessMenus (default 0) 0 = Can't access the menu in battle / 1 = Using the menu takes a turn / 2 = Using the menu can only be done on characters' turn / 3 = Menus can be opened party-wide at any time in battles ; AvailableMenus (default "Equip", "SupportingAbility") The different sub-menus that can be accessed in battle, among "Item", "ActiveAbility", "SupportingAbility", "Ability", "Equip", "Status", "Order", "Card" and "Config" (all are enabled if the option is left empty) ; CustomBattleFlagsMeaning (default 0) 0 = Default (unused flags are unused) / 1 = Alternate Fantasy usage (Abilities have "Contact attack", "Use weapon's properties" and "Can critical" flags ; enemies have a "10000 HP script trigger" flag) ; StatusDurationFormula (default: ContiCnt (IsNegativeStatus ? 8 (60 - TargetSpirit) : (IsPositiveStatus ? 8 TargetSpirit : 4 (60 - TargetSpirit)))) Formula for the duration of statuses that are not permanent ; StatusTickFormula (default: OprCnt (IsNegativeStatus ? 4 TargetSpirit : 4 (60 - TargetSpirit))) Formula for the delay between each tick of Poison, Venom and Regen ; SpeedStatFormula (default: Min(50, SpeedBase + Level / 10 + (SpeedBonus / 32))) Formula for the level progression of player character speed ; StrengthStatFormula (default: Min(99, StrengthBase + Level 3 / 10 + (StrengthBonus / 32))) Formula for the level progression of player character strength ; MagicStatFormula (default: Min(99, MagicBase + Level 3 / 10 + (MagicBonus / 32))) Formula for the level progression of player character magic ; SpiritStatFormula (default: Min(50, SpiritBase + Level 3 / 20 + (SpiritBonus / 32))) Formula for the level progression of player character spirit ; MagicStoneStockFormula (default: Min(99, MagicStoneBase + Level 4 / 10 + (MagicStoneBonus / 32))) Formula for the level progression of player character magic stones ; TranceDecreaseFormula (default: (300 - Level) / Spirit 10) Formula for the trance decrease after each turn spent in trance (the full gauge corresponds to 255) Enabled = 1 SFXRework = 0 Speed = 0 NoAutoTrance = 0 EncounterInterval = 960 EncounterInitial = -1440 PersistentDangerValue = 0 PSXEncounterMethod = 0 AutoPotionOverhealLimit = -1 GarnetConcentrate = 1 SelectBestTarget = 1 BreakDamageLimit = 0 ViviAutoAttack = 0 CountersBetterTarget = 0 LockEquippedAbilities = 0 FloatEvadeBonus = 0 AccessMenus = 0 AvailableMenus = "Equip", "SupportingAbility" CustomBattleFlagsMeaning = 0 StatusDurationFormula = ContiCnt (IsNegativeStatus ? 8 (60 - TargetSpirit) : (IsPositiveStatus ? 8 TargetSpirit : 4 (60 - TargetSpirit))) StatusTickFormula = OprCnt (IsNegativeStatus ? 4 TargetSpirit : 4 (60 - TargetSpirit)) SpeedStatFormula = Min(50, SpeedBase + Level / 10 + (SpeedBonus >> 5)) StrengthStatFormula = Min(99, StrengthBase + Level 3 / 10 + (StrengthBonus >> 5)) MagicStatFormula = Min(99, MagicBase + Level 3 / 10 + (MagicBonus >> 5)) SpiritStatFormula = Min(50, SpiritBase + Level 3 / 20 + (SpiritBonus >> 5)) MagicStoneStockFormula = Min(99, MagicStoneBase + Level 4 / 10 + (MagicStoneBonus >> 5)) TranceDecreaseFormula = (300 - Level) / Spirit 10
[Icons] ; HideCursor (default 0) Hides "I'm here" hand ; HideCards (default 0) Hides card speech bubbles ; HideExclamation (default 0) Hides "!" Speech bubble ; HideQuestion (default 0) Hides "?" Speech bubble ; HideBeach (default 0) Hides "~~" speech bubbles ; HideSteam (default 0) Hides speech bubbles added by the Steam version (compared to the PSX version) Enabled = 1 HideCursor = 0 HideCards = 0 HideExclamation = 0 HideQuestion = 0 HideBeach = 0 HideSteam = 0
[Cheats] ; "Boosters" included in the steam version ; Rotation (default 1) ? ; Perspective (default 1) ? ; SpeedMode (default 1) F1 - Speed mode ; SpeedFactor (default 3) Speed mode multiplier ; SpeedTimer (default 0) Speed up Hot & Cold and other timed mini-games when Speed mode is activate ; BattleAssistance (default 0) F2 - Gives transe to your characters ; Attack9999 (default 0) F3 - All your attacks inflict 9999 ; NoRandomEncounter (default 1) F4 - Removes random battles ; MasterSkill (default 0) F5 - irreversible - Characters learn skills upon equipping ; LvMax (default 0) F6 - irreversible - All characters lvl 99 ; GilMax (default 0) F7 - irreversible - Unlimited gils Enabled = 1 Rotation = 1 Perspective = 1 SpeedMode = 0 SpeedFactor = 3 SpeedTimer = 0 BattleAssistance = 0 Attack9999 = 0 NoRandomEncounter = 0 MasterSkill = 0 LvMax = 0 GilMax = 0
[Hacks] ; Memoria cheats ; AllCharactersAvailable (default 0) 1 = All characters are available / 2 = All characters are available and characters are not removed or swapped because of the scenario. Be careful: the option 2 soft-locks the game in some situations. ; RopeJumpingIncrement (default 1) Number of points per jump ; SwordplayAssistance (default 1) Ease the sword fight mini-game against Blank: 0 = difficulty of the PSX version / 1 = +30% scoring (default of the Steam version) / 2 = remove the reaction time limit ; FrogCatchingIncrement (default 1) Number of frogs per catch ; HippaulRacingViviSpeed (default 33) Vivi's speed in the hippaul racing ; StealingAlwaysWorks (default 0) 1 = Always steals when move succeeds / 2 = Stealing has a 100% success rate (bandit ability). Targets the rarest item first. ; DisableNameChoice (default 0) Skip the character renaming windows ; ExcaliburIINoTimeLimit (default 0) Give Excalibur II even when time is over Enabled = 1 AllCharactersAvailable = 0 RopeJumpingIncrement = 1 SwordplayAssistance = 1 FrogCatchingIncrement = 1 HippaulRacingViviSpeed = 33 StealingAlwaysWorks = 2 DisableNameChoice = 0 ExcaliburIINoTimeLimit = 0
[TetraMaster] ; TripleTriad (defaut 0) 0 = Tetra Master / 1 = "Tetra Triad" (a mix with both card games!) / 2 = Triple Triad (like FF8!) ; ReduceRandom (default 0) Changes the calculation method of card battles, 0 = don't change, 1 = reduce randomness, 2 = easy wins ; MaxCardCount (default 100) The maximum number of cards the player can have Simultaneously ; DiscardAutoButton (default 1) Adds "Auto" button to the discard card dialog ; DiscardAssaultCards (default 0) Enable to auto discard Assault cards (?A??) ; DiscardFlexibleCards (default 1) Enable to auto discard Flexible cards (?X??) ; DiscardMaxAttack (default 224) Maximum attack power for auto discard (number on the card 16) ; DiscardMaxPDef (default 255) Maximum physical defence for auto discard (number on the card 16) ; DiscardMaxMDef (default 255) Maximum magical defence for auto discard (number on the card 16) ; DiscardMaxSum (default 480) Maximum sum of attack power, physical and magical defence for auto discard (numbers on the card 16) ; DiscardMinDeckSize (default 10) Minimum number of cards in the deck for auto discard ; DiscardKeepSameType (default 1) Minimum number of cards with the same type in the deck for auto discard ; DiscardKeepSameArrow (default 0) Minimum number of cards with the arrows in the deck for auto discard ; DiscardExclusions (default 56, 75, 76, 77, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 98, 99, 100) Disable auto discard for these cards Enabled = 1 TripleTriad = 0 ReduceRandom = 0 MaxCardCount = 100 DiscardAutoButton = 1 DiscardAssaultCards = 0 DiscardFlexibleCards = 1 DiscardMaxAttack = 224 DiscardMaxPDef = 255 DiscardMaxMDef = 255 DiscardMaxSum = 480 DiscardMinDeckSize = 10 DiscardKeepSameType = 1 DiscardKeepSameArrow = 0 DiscardExclusions = 56, 75, 76, 77, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 98, 99, 100
[Interface] ; Setup UI parameters by pressing Alt+F1 in-game ; MinimapPreset (default 1) 0 = World minimap and chocograph on the left of the screen, 1 = right ; MinimapOffsetX (default 0) 0 = World minimap position adjustment in pixels, horizontal (positive is to the right) ; MinimapOffsetY (default 0) 0 = World minimap position adjustment in pixels, vertical (positive is to the top) ; PSXBattleMenu (default 0) 0 = Command menu is disposed as a 2x3 table / 1 = Command menu is disposed in a column with Change/Defend accessible with left/right keys ; ScanDisplay (default 1) 0 = Informations given by Scan are displayed as successive messages / 1 = Scan opens an information panel ; BattleCommandTitleFormat (default empty) Custom format string for displaying the ability names on cast; use eg. CommandTitle + ' ([FFCC00]' + CasterName + '[FFFFFF])' to append the caster's name in yellow ; BattleDamageTextFormat (default empty) Custom format string of the damage display in-battle; use eg. '[FF6600]' + BaseText for a custom hexa RGB color ; BattleRestoreTextFormat (default empty) Same as above for HP heal ; BattleMPDamageTextFormat (default empty) Same as above for MP damage ; BattleMPRestoreTextFormat (default empty) Same as above for MP heal ; FadeDuration (default 40, original game 300) Duration of the fade between interface transitions in milliseconds, navigation cannot occur during transition. Setting it to 0 will allow instant navigation. ; SynthIngredientStockDisplayed (default 1) 1 = In synthesis shops, display the amount of ingredients in inventory between "()" / 0 = don't display ; DisplayPSXDiscChanges (default 1) 1 = Display the original "insert disc x" screens, 0 = don't display BattleRowCount = 4 BattleColumnCount = 1 BattleMenuPosX = -500 BattleMenuPosY = -360 BattleMenuWidth = 650 BattleMenuHeight = 280 BattleDetailPosX = 500 BattleDetailPosY = -422 BattleDetailWidth = 672 BattleDetailHeight = 208 MinimapPreset = 1 MinimapOffsetX = 0 MinimapOffsetY = 0 PSXBattleMenu = 1 ScanDisplay = 1 BattleCommandTitleFormat = BattleDamageTextFormat = BattleRestoreTextFormat = BattleMPDamageTextFormat = BattleMPRestoreTextFormat = MenuItemRowCount = 8 MenuAbilityRowCount = 6 MenuEquipRowCount = 5 MenuChocographRowCount = 5 FadeDuration = 40 SynthIngredientStockDisplayed = 1 DisplayPSXDiscChanges = 1
[Fixes] Enabled = 1 KeepRestTimeInBattle = 1
[SaveFile] ; DisableAutoSave (default 0) No auto-save is done during field transitions ; AutoSaveOnlyAtMoogle (default 0) Auto-saves are done only when entering places that natively have a save point (moogle or a save sphere in Memoria) and when entering the World Map ; SaveOnCloud (default 0) When saving to a moogle save, a copy is uploaded to the cloud, overwriting the (unique) Steam Cloud FF9 save DisableAutoSave = 0 AutoSaveOnlyAtMoogle = 0 SaveOnCloud = 0
[Speedrun] ; SplitSettingsPath: A path to a text file defining splits with their trigger conditions ; LogGameTimePath: A path to a file in which the game timer will be written in real time Enabled = 0 SplitSettingsPath = LogGameTimePath =
[Debug] ; StartModelViewer: open a model and animation viewer, use with cautious ; StartFieldCreator: open an editor to create new fields ; RenderWalkmeshes: show the path geometry on which the characters walk in-game Enabled = 0 SigningEventObjects = 0 StartModelViewer = 0 StartFieldCreator = 0 RenderWalkmeshes = 0
[Export] ; no effect in game ; TextFileFormat: determines in what format the text resources will be exported; possible values: .strings, .resjson Enabled = 0 Path = %StreamingAssets% Languages = "US", "UK", "JP", "ES", "FR", "GR", "IT" Text = 1 TextFileFormat = .strings Graphics = 1 Audio = 1 Field = 0 Battle = 0
[Import] ; no effect in game Enabled = 0 Path = %StreamingAssets% Text = 1 Audio = 1 Graphics = 1 Field = 0
[Shaders] Enabled = 0 Shader_Field_Realism = 0 Shader_Field_Toon = 0 Shader_Field_Outlines = 0 Shader_Battle_Realism = 0 Shader_Battle_Toon = 0 Shader_Battle_Outlines = 0