Skip to content

Sigil Synthesis Grand Success

Tip

Handled by ui::fsm::action::MixGem fsm component. Signature: 55 41 57 41 56 41 55 41 54 56 57 53 48 81 EC ? ? ? ? 48 8D AC 24 ? ? ? ? 48 83 E4 ? 48 89 E3 48 89 AB ? ? ? ? 48 C7 85 ? ? ? ? ? ? ? ? 4C 8B 2D.

Execution

Sigil Synthesis has an unexplained feature where the game will randomly award a gem with a maxed level rather than the default level (which is 11). When this happens, a 'Grand Success' in place of a 'Great Success' is shown.

Tip

Internally:

  • Sigil Synthesis = Gem Mix
  • Sigil = Gem
  • Trait = Skill
  • Ticket = Knicknack Voucher

For how this works; the game combines total level of all skills inserted. Lv11+Lv11 & Lv11+Lv11 = 44.

It is then used as a key into gem_mix_success table.

  • The first column is the weight chance for regular (great) success.
  • The second column is the weight chance for grand success.

All skills from both gems are put into an array of 4 skills then the list is shuffled. The first two are taken. That's the new gem.

If it's a grand success, assign the maximum possible level for the gem. Otherwise default level.

Cost is determined from gem_mix_rupi and gem_mix_ticket tables, also based on total combined skill level for both gems. Current rupies & tickets are deducted based on that.


Chance List

Total Sigil Level to Chance

44 (4x Lvl.11) = 45%
46 = 48%
48 = 51%
50 = 54%
52 = 57%
54 = 60%
56 = 70%
58 = 75%
60 (4x Lv.15) = 85%

Siero

Siero can show three messages on the right side before synthesis:

  • Some solid picks you got there.\nReady whenever you are! (TXT_YOROZU_COMP_PROB_LOW)
  • I've got a good feeling about this!\nHope it turns out great! (TXT_YOROZU_COMP_PROB_MID)
  • Oh my! I think we've got a real\nwinner here! I've got goosebumps! (TXT_YOROZU_COMP_PROB_HIGH)

The second and third ones are chosen if the weight/percentage for the current combined sigil level (column 2 of gem_mix_success) is above the last two columns in the constant table, respectively. In 1.3, the second message has weight 5400 (54%) and the third message is 7000 (70%).

Otherwise, the first one (default) is picked.


Other useful signatures

  • GemManager::GetGemInfoFromSlotId(__int64 a1, _QWORD *a2, unsigned int a3) - 41 56 56 57 55 53 48 83 EC ? 44 89 C3 49 89 D6 48 89 CF 48 81 C1 ? ? ? ? 48 8B 87 ? ? ? ? FF 50 ? 39 D8 0F 84 ? ? ? ? 89 D8 C1 E8 ? 89 D9 C1 E9 ? 0F B6 D3 48 BE ? ? ? ? ? ? ? ? 48 31 D6 48 BA ? ? ? ? ? ? ? ? 48 0F AF F2 0F B6 EF 48 31 F5 48 0F AF EA 0F B6 C0 48 31 E8 48 0F AF C2 48 31 C8 48 0F AF C2 48 23 87 ? ? ? ? 48 8B 8F ? ? ? ? 48 8B B7 ? ? ? ? 48 89 C2 48 C1 E2 ? 48 8B 54 16 ? 48 39 CA 0F 84 ? ? ? ? 39 5A ? 74 ? 48 01 C0 48 8B 34 C6 31 C0 66 0F 1F 84 00 ? ? ? ? 48 39 F2 74 ? 48 8B 52 ? 39 5A ? 75 ? 48 39 CA 74 ? 48 8B 42 ? 48 85 C0 74 ? 8B 50 ? 8B 6F
  • GetGemMixSuccessForGemSlots - 41 56 56 57 55 53 48 83 EC ? 4D 89 CE 44 89 C3
  • RandomManager::GetRandomValue - 55 56 57 48 83 EC ? 48 8D 6C 24 ? 48 C7 45 ? ? ? ? ? 8B 81 ? ? ? ? 83 F8
  • GetGemMixRupiCostForGemSlots - E8 ? ? ? ? 89 43 ? C6 44 24
  • GetSigilListForGemMix - E8 ? ? ? ? 48 8D 4B ? 4C 8B 43 - Returns a struct containing a count and the list of sigil hashes
  • GetDefaultLevelForGem - E8 ? ? ? ? 45 85 FF 74 ? 4C 89 E9
  • GetMaxPossibleLevelForGem - 56 57 55 53 8B 71 ? 21 D6 4C 8B 41 ? 4C 8B 49 ? 48 89 F0 48 C1 E0 ? 49 8B 5C 01 ? B8 ? ? ? ? 4C 39 C3 0F 84 ? ? ? ? 39 53 ? 74 ? 48 01 F6 49 8B 34 F1 66 0F 1F 84 00 ? ? ? ? 48 39 F3 0F 84 ? ? ? ? 48 8B 5B ? 39 53 ? 75 ? 4C 39 C3 0F 84 ? ? ? ? 48 8B 5B
  • CreateNewGem - 55 41 57 41 56 41 55 41 54 56 57 53 48 81 EC ? ? ? ? 48 8D AC 24 ? ? ? ? 48 C7 45 ? ? ? ? ? 41 89 D5 8B 79
  • SetGemTrait- 55 41 57 41 56 56 57 53 48 83 EC ? 48 8D 6C 24 ? 48 C7 45 ? ? ? ? ? 45 89 CE 45 89 C7 89 D3
  • GetTotalGemLevelFromGemSlotId - 56 57 53 48 83 EC ? 89 D3 48 89 CE 48 81 C1 ? ? ? ? 48 8B 86 ? ? ? ? FF 50 ? 89 C1 31 C0 39 D9 0F 84 ? ? ? ? 89 D9 C1 E9 ? 41 89 D9 41 C1 E9 ? 44 0F B6 C3 48 BA ? ? ? ? ? ? ? ? 4C 31 C2 49 B8 ? ? ? ? ? ? ? ? 49 0F AF D0 0F B6 FF 48 31 D7 49 0F AF F8 0F B6 C9 48 31 F9 49 0F AF C8 4C 31 C9 49 0F AF C8 48 23 8E ? ? ? ? 4C 8B 86 ? ? ? ? 48 8B B6 ? ? ? ? 48 89 CA 48 C1 E2 ? 48 8B 54 16 ? 4C 39 C2 74 ? 39 5A ? 74 ? 48 01 C9 48 8B 0C CE 66 66 66 66 66 66 2E 0F 1F 84 00 ? ? ? ? 48 39 CA 74 ? 48 8B 52 ? 39 5A ? 75 ? 4C 39 C2 74 ? 48 8B 4A ? 48 85 C9 74 ? 31 C0 81 39 ? ? ? ? 74
  • AddOrRemoveRupies - 55 41 56 56 57 53 48 81 EC ? ? ? ? 48 8D AC 24 ? ? ? ? 48 C7 45 ? ? ? ? ? 48 89 CE 89 D1
  • AddOrRemoveItem - 55 41 57 41 56 41 55 41 54 56 57 53 48 81 EC ? ? ? ? 48 8D AC 24 ? ? ? ? 48 83 E4 ? 48 89 E3 48 89 AB ? ? ? ? 48 C7 85 ? ? ? ? ? ? ? ? 45 85 C0 0F 84