Compare commits

...

13 Commits

Author SHA1 Message Date
Daniel Nylander
e3aa24c17c Merge branch 'Ryubing:master' into master 2025-01-09 06:59:50 +01:00
Evan Husted
2226521f6c docs: compat: remove quotes around everything but game titles 2025-01-08 12:36:26 -06:00
Evan Husted
384416953d docs: compat: list title ID column first 2025-01-08 12:30:13 -06:00
Evan Husted
1343fabe41 docs: compat: some more missing title ids 2025-01-08 12:20:20 -06:00
Daniel Nylander
d0175a63f4 Merge branch 'Ryubing:master' into master 2025-01-08 09:51:59 +01:00
Evan Husted
1e52af5e29 docs: compat: Multiple big changes:
Sort alphabetically,
Remove title IDs in "issue_title" column,
and remove all entries without a playability status.
2025-01-07 20:17:09 -06:00
Evan Husted
672f5df0f9 docs: compat: Remove issue_number & events_count columns
That's mostly for archival purposes; we don't need it.
2025-01-07 18:49:04 -06:00
Evan Husted
804d9c1efe docs: compat: remove invalid dupe 2025-01-07 06:03:35 -06:00
Evan Husted
9270b35648 no. 2025-01-07 05:53:31 -06:00
Evan Husted
5a6d01db3c docs: compat: trine 4 -> nothing
added Soul Reaver 1 & 2
2025-01-07 05:50:30 -06:00
Evan Husted
ef9c1416ec UI: compat: Only use monospaced font for title ID 2025-01-07 04:49:20 -06:00
Daniel Nylander
2d0b679338 Merge branch 'Ryubing:master' into master 2025-01-04 19:28:37 +01:00
Daniel Nylander
aef1185978 Update Swedish translation in locales.json 2024-12-31 19:46:05 +01:00
4 changed files with 3467 additions and 4349 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1564,7 +1564,7 @@
"pl_PL": "Wersja",
"pt_BR": "Versão",
"ru_RU": "Версия",
"sv_SE": "",
"sv_SE": "Version",
"th_TH": "เวอร์ชั่น",
"tr_TR": "Sürüm",
"uk_UA": "Версія",
@@ -3264,7 +3264,7 @@
"pl_PL": "",
"pt_BR": "Sistema",
"ru_RU": "Система",
"sv_SE": "",
"sv_SE": "System",
"th_TH": "ระบบ",
"tr_TR": "Sistem",
"uk_UA": "Система",
@@ -3339,7 +3339,7 @@
"pl_PL": "Japonia",
"pt_BR": "Japão",
"ru_RU": "Япония",
"sv_SE": "",
"sv_SE": "Japan",
"th_TH": "ญี่ปุ่น",
"tr_TR": "Japonya",
"uk_UA": "Японія",
@@ -3364,7 +3364,7 @@
"pl_PL": "Stany Zjednoczone",
"pt_BR": "EUA",
"ru_RU": "США",
"sv_SE": "",
"sv_SE": "USA",
"th_TH": "สหรัฐอเมริกา",
"tr_TR": "ABD",
"uk_UA": "США",
@@ -3464,7 +3464,7 @@
"pl_PL": "",
"pt_BR": "Coreia",
"ru_RU": "Корея",
"sv_SE": "",
"sv_SE": "Korea",
"th_TH": "เกาหลี",
"tr_TR": "Kore",
"uk_UA": "Корея",
@@ -3489,7 +3489,7 @@
"pl_PL": "Tajwan",
"pt_BR": "",
"ru_RU": "Тайвань",
"sv_SE": "",
"sv_SE": "Taiwan",
"th_TH": "ไต้หวัน",
"tr_TR": "Tayvan",
"uk_UA": "Тайвань",
@@ -4139,7 +4139,7 @@
"pl_PL": "Atrapa",
"pt_BR": "Nenhuma",
"ru_RU": "Без звука",
"sv_SE": "",
"sv_SE": "Ingenting",
"th_TH": "",
"tr_TR": "Yapay",
"uk_UA": "",
@@ -5664,7 +5664,7 @@
"pl_PL": "",
"pt_BR": "",
"ru_RU": "",
"sv_SE": "",
"sv_SE": "Ok",
"th_TH": "ตกลง",
"tr_TR": "Tamam",
"uk_UA": "Гаразд",
@@ -12439,7 +12439,7 @@
"pl_PL": "",
"pt_BR": "",
"ru_RU": "",
"sv_SE": "",
"sv_SE": "{0}: {1}",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
@@ -14289,7 +14289,7 @@
"pl_PL": "Seria Amiibo",
"pt_BR": "Franquia Amiibo",
"ru_RU": "Серия Amiibo",
"sv_SE": "",
"sv_SE": "Amiibo-serien",
"th_TH": "",
"tr_TR": "Amiibo Serisi",
"uk_UA": "Серія Amiibo",
@@ -17439,7 +17439,7 @@
"pl_PL": "Wersja {0}",
"pt_BR": "Versão {0}",
"ru_RU": "Версия {0}",
"sv_SE": "",
"sv_SE": "Version {0}",
"th_TH": "เวอร์ชั่น {0}",
"tr_TR": "Sürüm {0}",
"uk_UA": "Версія {0}",
@@ -17664,7 +17664,7 @@
"pl_PL": "",
"pt_BR": "Ryujinx - Informação",
"ru_RU": "Ryujinx - Информация",
"sv_SE": "",
"sv_SE": "Ryujinx - Info",
"th_TH": "Ryujinx ข้อมูล",
"tr_TR": "Ryujinx - Bilgi",
"uk_UA": "Ryujin x - Інформація",
@@ -19639,7 +19639,7 @@
"pl_PL": "",
"pt_BR": "",
"ru_RU": "{0:n0} Мб",
"sv_SE": "",
"sv_SE": "{0:n0} Mb",
"th_TH": "",
"tr_TR": "",
"uk_UA": "{0:n0} Мб",
@@ -20914,7 +20914,7 @@
"pl_PL": "Głoś",
"pt_BR": "",
"ru_RU": "Громкость",
"sv_SE": "",
"sv_SE": "Vol",
"th_TH": "ระดับเสียง",
"tr_TR": "Ses",
"uk_UA": "Гуч.",
@@ -22214,7 +22214,7 @@
"pl_PL": "",
"pt_BR": "",
"ru_RU": "Вертикальная синхронизация:",
"sv_SE": "",
"sv_SE": "VSync:",
"th_TH": "",
"tr_TR": "",
"uk_UA": "Вертикальна синхронізація (VSync):",
@@ -22823,4 +22823,4 @@
}
}
]
}
}

View File

@@ -3,6 +3,7 @@ using nietras.SeparatedValues;
using Ryujinx.Ava.Common.Locale;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
@@ -32,21 +33,18 @@ namespace Ryujinx.Ava.Utilities.Compat
{
public CompatibilityEntry(SepReaderHeader header, SepReader.Row row)
{
IssueNumber = row[header.IndexOf("issue_number")].Parse<int>();
var titleIdRow = row[header.IndexOf("extracted_game_id")].ToString();
if (row.ColCount != header.ColNames.Count)
throw new InvalidDataException($"CSV row {row.RowIndex} ({row.ToString()}) has mismatched column count");
var titleIdRow = ColStr(row[header.IndexOf("\"title_id\"")]);
TitleId = !string.IsNullOrEmpty(titleIdRow)
? titleIdRow
: default(Optional<string>);
GameName = ColStr(row[header.IndexOf("\"game_name\"")]).Trim().Trim('"');
var issueTitleRow = row[header.IndexOf("issue_title")].ToString();
if (TitleId.HasValue)
issueTitleRow = issueTitleRow.ReplaceIgnoreCase($" - {TitleId}", string.Empty);
GameName = issueTitleRow.Trim().Trim('"');
IssueLabels = row[header.IndexOf("issue_labels")].ToString().Split(';');
Status = row[header.IndexOf("extracted_status")].ToString().ToLower() switch
IssueLabels = ColStr(row[header.IndexOf("\"labels\"")]).Split(';');
Status = ColStr(row[header.IndexOf("\"status\"")]).ToLower() switch
{
"playable" => LocaleKeys.CompatibilityListPlayable,
"ingame" => LocaleKeys.CompatibilityListIngame,
@@ -56,23 +54,23 @@ namespace Ryujinx.Ava.Utilities.Compat
_ => null
};
if (row[header.IndexOf("last_event_date")].TryParse<DateTime>(out var dt))
if (DateTime.TryParse(ColStr(row[header.IndexOf("\"last_updated\"")]), out var dt))
LastEvent = dt;
if (row[header.IndexOf("events_count")].TryParse<int>(out var eventsCount))
EventCount = eventsCount;
return;
string ColStr(SepReader.Col col) => col.ToString().Trim('"');
}
public int IssueNumber { get; }
public string GameName { get; }
public Optional<string> TitleId { get; }
public string[] IssueLabels { get; }
public LocaleKeys? Status { get; }
public DateTime LastEvent { get; }
public int EventCount { get; }
public string LocalizedStatus => LocaleManager.Instance[Status!.Value];
public string FormattedTitleId => TitleId.OrElse(new string(' ', 16));
public string FormattedTitleId => TitleId
.OrElse(new string(' ', 16));
public string FormattedIssueLabels => IssueLabels
.Where(it => !it.StartsWithIgnoreCase("status"))
@@ -82,13 +80,11 @@ namespace Ryujinx.Ava.Utilities.Compat
public override string ToString()
{
var sb = new StringBuilder("CompatibilityEntry: {");
sb.Append($"{nameof(IssueNumber)}={IssueNumber}, ");
sb.Append($"{nameof(GameName)}=\"{GameName}\", ");
sb.Append($"{nameof(TitleId)}={TitleId}, ");
sb.Append($"{nameof(IssueLabels)}=\"{IssueLabels}\", ");
sb.Append($"{nameof(Status)}=\"{Status}\", ");
sb.Append($"{nameof(LastEvent)}=\"{LastEvent}\", ");
sb.Append($"{nameof(EventCount)}={EventCount}");
sb.Append($"{nameof(LastEvent)}=\"{LastEvent}\"");
sb.Append('}');
return sb.ToString();

View File

@@ -47,9 +47,8 @@
<Grid Width="750" ColumnDefinitions="Auto,Auto,Auto,*"
Margin="5">
<TextBlock Grid.Column="0"
FontFamily="{StaticResource JetBrainsMono}"
Text="{Binding GameName}"
Width="333"
Width="320"
TextWrapping="Wrap" />
<TextBlock Grid.Column="1"
Width="135"
@@ -60,14 +59,12 @@
<TextBlock Grid.Column="2"
Padding="7, 0"
VerticalAlignment="Center"
FontFamily="{StaticResource JetBrainsMono}"
Text="{Binding LocalizedStatus}"
Width="85"
Foreground="{Binding Status, Converter={x:Static helpers:PlayabilityStatusConverter.Shared}}"
TextWrapping="NoWrap" />
<TextBlock Grid.Column="3"
VerticalAlignment="Center"
FontFamily="{StaticResource JetBrainsMono}"
Text="{Binding FormattedIssueLabels}"
TextWrapping="WrapWithOverflow" />
</Grid>