Some work on the credits screen, main screen

This commit is contained in:
Henrik Rydgård committed 2025-10-28 11:27:31 +01:00
1 parent 84b491a4f8
commit 9ed3fc0eaa
56 files changed
+2979 -2964

No files matched your search

+1
View File
@@ -234,6 +234,7 @@ enum SystemProperty {
SYSPROP_HAS_TRASH_BIN,
SYSPROP_USE_IAP,
SYSPROP_SUPPORTS_SHARE_TEXT,
};
enum class SystemNotification {
+7 -7
View File
@@ -504,7 +504,7 @@ void KeyMappingNewMouseKeyDialog::axis(const AxisInput &axis) {
}
}
AnalogSetupScreen::AnalogSetupScreen(const Path &gamePath) : UIDialogScreenWithGameBackground(gamePath) {
AnalogCalibrationScreen::AnalogCalibrationScreen(const Path &gamePath) : UIDialogScreenWithGameBackground(gamePath) {
mapper_.SetCallbacks(
[](int vkey, bool down) {},
[](int vkey, float analogValue) {},
@@ -519,7 +519,7 @@ AnalogSetupScreen::AnalogSetupScreen(const Path &gamePath) : UIDialogScreenWithG
});
}
void AnalogSetupScreen::update() {
void AnalogCalibrationScreen::update() {
mapper_.Update(time_now_d());
// We ignore the secondary stick for now and just use the two views
// for raw and psp input.
@@ -532,7 +532,7 @@ void AnalogSetupScreen::update() {
UIScreen::update();
}
bool AnalogSetupScreen::key(const KeyInput &key) {
bool AnalogCalibrationScreen::key(const KeyInput &key) {
bool retval = UIScreen::key(key);
// Allow testing auto-rotation. If it collides with UI keys, too bad.
@@ -546,7 +546,7 @@ bool AnalogSetupScreen::key(const KeyInput &key) {
return retval;
}
void AnalogSetupScreen::axis(const AxisInput &axis) {
void AnalogCalibrationScreen::axis(const AxisInput &axis) {
// We DON'T call UIScreen::Axis here! Otherwise it'll try to move the UI focus around.
// UIScreen::axis(axis);
@@ -554,7 +554,7 @@ void AnalogSetupScreen::axis(const AxisInput &axis) {
mapper_.Axis(&axis, 1);
}
void AnalogSetupScreen::CreateViews() {
void AnalogCalibrationScreen::CreateViews() {
using namespace UI;
auto di = GetI18NCategory(I18NCat::DIALOG);
@@ -580,7 +580,7 @@ void AnalogSetupScreen::CreateViews() {
// TODO: This should probably be a slider.
scrollContents->Add(new CheckBox(&g_Config.bAnalogIsCircular, co->T("Circular stick input")));
scrollContents->Add(new PopupSliderChoiceFloat(&g_Config.fAnalogAutoRotSpeed, 0.1f, 20.0f, 8.0f, co->T("Auto-rotation speed"), 1.0f, screenManager()));
scrollContents->Add(new Choice(co->T("Reset to defaults")))->OnClick.Handle(this, &AnalogSetupScreen::OnResetToDefaults);
scrollContents->Add(new Choice(co->T("Reset to defaults")))->OnClick.Handle(this, &AnalogCalibrationScreen::OnResetToDefaults);
LinearLayout *theTwo = new LinearLayout(ORIENT_HORIZONTAL, new LinearLayoutParams(1.0f));
@@ -592,7 +592,7 @@ void AnalogSetupScreen::CreateViews() {
AddStandardBack(leftColumn);
}
void AnalogSetupScreen::OnResetToDefaults(UI::EventParams &e) {
void AnalogCalibrationScreen::OnResetToDefaults(UI::EventParams &e) {
g_Config.fAnalogDeadzone = 0.15f;
g_Config.fAnalogInverseDeadzone = 0.0f;
g_Config.fAnalogSensitivity = 1.1f;
+2 -2
View File
@@ -120,9 +120,9 @@ private:
class JoystickHistoryView;
class AnalogSetupScreen : public UIDialogScreenWithGameBackground {
class AnalogCalibrationScreen : public UIDialogScreenWithGameBackground {
public:
AnalogSetupScreen(const Path &gamePath);
AnalogCalibrationScreen(const Path &gamePath);
bool key(const KeyInput &key) override;
void axis(const AxisInput &axis) override;
+1 -1
View File
@@ -794,7 +794,7 @@ void GameSettingsScreen::CreateControlsSettings(UI::ViewGroup *controlsSettings)
screenManager()->push(new ControlMappingScreen(gamePath_));
});
controlsSettings->Add(new Choice(co->T("Calibrate Analog Stick")))->OnClick.Add([this](UI::EventParams &e) {
screenManager()->push(new AnalogSetupScreen(gamePath_));
screenManager()->push(new AnalogCalibrationScreen(gamePath_));
});
controlsSettings->Add(new PopupSliderChoiceFloat(&g_Config.fAnalogTriggerThreshold, 0.02f, 0.98f, 0.75f, co->T("Analog trigger threshold"), screenManager()));
+1 -1
View File
@@ -1296,7 +1296,7 @@ void MainScreen::CreateViews() {
}
if (vertical) {
LinearLayout *header = new LinearLayout(ORIENT_HORIZONTAL, new LinearLayoutParams(FILL_PARENT, WRAP_CONTENT));
LinearLayout *header = new LinearLayout(ORIENT_HORIZONTAL, new LinearLayoutParams(FILL_PARENT, WRAP_CONTENT, Margins(0, 16, 0, 8)));
header->SetSpacing(5.0f);
header->Add(CreateLogoView(true, new LinearLayoutParams(WRAP_CONTENT, 80.0f, false)));
+88 -80
View File
@@ -907,74 +907,95 @@ void LogoScreen::DrawForeground(UIContext &dc) {
dc.Flush();
}
class CreditsScroller : public UI::View {
public:
CreditsScroller(UI::LayoutParams *layoutParams) : UI::View(layoutParams) {}
bool Touch(const TouchInput &touch) override {
if (touch.id != 0)
return false;
if (touch.flags & TOUCH_DOWN) {
dragYStart_ = touch.y;
dragYOffsetStart_ = dragOffset_;
}
if (touch.flags & TOUCH_UP) {
dragYStart_ = -1.0f;
}
if (touch.flags & TOUCH_MOVE) {
if (dragYStart_ >= 0.0f) {
dragOffset_ = dragYOffsetStart_ + (touch.y - dragYStart_);
}
}
return true;
}
void Draw(UIContext &dc);
private:
Instant startTime_ = Instant::Now();
double dragYStart_ = -1.0;
double dragOffset_ = 0.0;
double dragYOffsetStart_ = 0.0;
};
void CreditsScreen::CreateViews() {
using namespace UI;
auto di = GetI18NCategory(I18NCat::DIALOG);
auto cr = GetI18NCategory(I18NCat::PSPCREDITS);
auto mm = GetI18NCategory(I18NCat::MAINMENU);
root_ = new AnchorLayout(new LayoutParams(FILL_PARENT, FILL_PARENT));
Button *back = root_->Add(new Button(di->T("Back"), new AnchorLayoutParams(260, 64, NONE, NONE, 10, 10, false)));
const bool portrait = UsePortraitLayout();
root_ = new LinearLayout(ORIENT_VERTICAL, new LayoutParams(FILL_PARENT, FILL_PARENT));
Button *back = root_->Add(new Button(di->T("Back")));
back->OnClick.Handle<UIScreen>(this, &UIScreen::OnOK);
root_->SetDefaultFocusView(back);
const bool gold = System_GetPropertyBool(SYSPROP_APP_GOLD);
// Really need to redo this whole layout with some linear layouts...
int rightYOffset = 0;
if (!System_GetPropertyBool(SYSPROP_APP_GOLD)) {
ScreenManager *sm = screenManager();
root_->Add(new Button(mm->T("Buy PPSSPP Gold"), new AnchorLayoutParams(260, 64, NONE, NONE, 10, 84, false)))->OnClick.Add([sm](UI::EventParams) {
LaunchBuyGold(sm);
});
rightYOffset = 74;
}
root_->Add(new Button(cr->T("PPSSPP Forums"), new AnchorLayoutParams(260, 64, 10, NONE, NONE, 158, false)))->OnClick.Handle(this, &CreditsScreen::OnForums);
root_->Add(new Button(cr->T("Discord"), new AnchorLayoutParams(260, 64, 10, NONE, NONE, 232, false)))->OnClick.Handle(this, &CreditsScreen::OnDiscord);
root_->Add(new Button("www.ppsspp.org", new AnchorLayoutParams(260, 64, 10, NONE, NONE, 10, false)))->OnClick.Handle(this, &CreditsScreen::OnPPSSPPOrg);
root_->Add(new Button(cr->T("Privacy Policy"), new AnchorLayoutParams(260, 64, 10, NONE, NONE, 84, false)))->OnClick.Handle(this, &CreditsScreen::OnPrivacy);
root_->Add(new Button(cr->T("X @PPSSPP_emu"), new AnchorLayoutParams(260, 64, NONE, NONE, 10, rightYOffset + 84, false)))->OnClick.Handle(this, &CreditsScreen::OnX);
#if PPSSPP_PLATFORM(ANDROID) || PPSSPP_PLATFORM(IOS)
root_->Add(new Button(cr->T("Share PPSSPP"), new AnchorLayoutParams(260, 64, NONE, NONE, 10, rightYOffset + 158, false)))->OnClick.Handle(this, &CreditsScreen::OnShare);
#endif
/*
if (System_GetPropertyBool(SYSPROP_APP_GOLD)) {
root_->Add(new ShinyIcon(ImageID("I_ICON_GOLD"), new AnchorLayoutParams(WRAP_CONTENT, WRAP_CONTENT, 10, 10, NONE, NONE, false)))->SetScale(1.5f);
} else {
root_->Add(new ImageView(ImageID("I_ICON"), "", IS_DEFAULT, new AnchorLayoutParams(WRAP_CONTENT, WRAP_CONTENT, 10, 10, NONE, NONE, false)))->SetScale(1.5f);
}*/
root_->Add(new CreditsScroller(new LinearLayoutParams(1.0f)));
LinearLayout *columns = root_->Add(new LinearLayout(ORIENT_HORIZONTAL));
LinearLayout *left = columns->Add(new LinearLayout(ORIENT_VERTICAL, new LinearLayoutParams(250.0f, WRAP_CONTENT)));
LinearLayout *middle = columns->Add(new LinearLayout(ORIENT_VERTICAL, new LinearLayoutParams(1.0f)));
LinearLayout *right = columns->Add(new LinearLayout(ORIENT_VERTICAL, new LinearLayoutParams(250.0f, WRAP_CONTENT)));
int rightYOffset = 0;
if (!System_GetPropertyBool(SYSPROP_APP_GOLD)) {
ScreenManager *sm = screenManager();
left->Add(new Choice(mm->T("Buy PPSSPP Gold")))->OnClick.Add([sm](UI::EventParams) {
LaunchBuyGold(sm);
});
rightYOffset = 74;
}
}
left->Add(new Choice(cr->T("PPSSPP Forums"), ImageID("I_LINK_OUT")))->OnClick.Add([this](UI::EventParams &e) {
System_LaunchUrl(LaunchUrlType::BROWSER_URL, "https://forums.ppsspp.org");
});
left->Add(new Choice(cr->T("Discord"), ImageID("I_LOGO_DISCORD")))->OnClick.Add([this](UI::EventParams &e) {
System_LaunchUrl(LaunchUrlType::BROWSER_URL, "https://discord.gg/5NJB6dD");
});
left->Add(new Choice("www.ppsspp.org", ImageID("I_LINK_OUT")))->OnClick.Add([this](UI::EventParams &e) {
System_LaunchUrl(LaunchUrlType::BROWSER_URL, "https://www.ppsspp.org");
});
right->Add(new Choice(cr->T("Privacy Policy"), ImageID("I_LINK_OUT")))->OnClick.Add([this](UI::EventParams &e) {
System_LaunchUrl(LaunchUrlType::BROWSER_URL, "https://www.ppsspp.org/privacy");
});
right->Add(new Choice(cr->T("@PPSSPP_emu"), ImageID("I_LOGO_X")))->OnClick.Add([this](UI::EventParams &e) {
System_LaunchUrl(LaunchUrlType::BROWSER_URL, "https://x.com/PPSSPP_emu");
});
void CreditsScreen::OnX(UI::EventParams &e) {
// Not sure we should change to x.com here, given various platform URL handlers etc. We can probably change it soon.
System_LaunchUrl(LaunchUrlType::BROWSER_URL, "https://twitter.com/PPSSPP_emu");
}
void CreditsScreen::OnPPSSPPOrg(UI::EventParams &e) {
System_LaunchUrl(LaunchUrlType::BROWSER_URL, "https://www.ppsspp.org");
}
void CreditsScreen::OnPrivacy(UI::EventParams &e) {
System_LaunchUrl(LaunchUrlType::BROWSER_URL, "https://www.ppsspp.org/privacy");
}
void CreditsScreen::OnForums(UI::EventParams &e) {
System_LaunchUrl(LaunchUrlType::BROWSER_URL, "https://forums.ppsspp.org");
}
void CreditsScreen::OnDiscord(UI::EventParams &e) {
System_LaunchUrl(LaunchUrlType::BROWSER_URL, "https://discord.gg/5NJB6dD");
}
void CreditsScreen::OnShare(UI::EventParams &e) {
auto cr = GetI18NCategory(I18NCat::PSPCREDITS);
System_ShareText(cr->T("CheckOutPPSSPP", "Check out PPSSPP, the awesome PSP emulator: https://www.ppsspp.org/"));
}
CreditsScreen::CreditsScreen() {
startTime_ = time_now_d();
if (System_GetPropertyBool(SYSPROP_SUPPORTS_SHARE_TEXT)) {
right->Add(new Choice(cr->T("Share PPSSPP"), ImageID("I_SHARE")))->OnClick.Add([this](UI::EventParams &e) {
auto cr = GetI18NCategory(I18NCat::PSPCREDITS);
System_ShareText(cr->T("CheckOutPPSSPP", "Check out PPSSPP, the awesome PSP emulator: https://www.ppsspp.org/"));
});
}
}
void CreditsScreen::update() {
@@ -982,27 +1003,7 @@ void CreditsScreen::update() {
UpdateUIState(UISTATE_MENU);
}
void CreditsScreen::touch(const TouchInput &touch) {
UIScreen::touch(touch);
if (touch.id != 0)
return;
if (touch.flags & TOUCH_DOWN) {
dragYStart_ = touch.y;
dragYOffsetStart_ = dragOffset_;
}
if (touch.flags & TOUCH_UP) {
dragYStart_ = -1.0f;
}
if (touch.flags & TOUCH_MOVE) {
if (dragYStart_ >= 0.0f) {
dragOffset_ = dragYOffsetStart_ + (touch.y - dragYStart_);
}
}
}
void CreditsScreen::DrawForeground(UIContext &dc) {
void CreditsScroller::Draw(UIContext &dc) {
auto cr = GetI18NCategory(I18NCat::PSPCREDITS);
std::string specialthanksMaxim = "Maxim ";
@@ -1160,25 +1161,32 @@ void CreditsScreen::DrawForeground(UIContext &dc) {
credits[0] = (const char *)temp;
dc.Begin();
const Bounds &bounds = dc.GetLayoutBounds();
const Bounds &bounds = bounds_;
bounds.Inset(10.f, 10.f);
const int numItems = ARRAY_SIZE(credits);
int itemHeight = 36;
int totalHeight = numItems * itemHeight + bounds.h + 200;
int contentsHeight = numItems * itemHeight + bounds.h + 200;
float t = (float)(time_now_d() - startTime_) * 60.0;
const float t = (float)(startTime_.ElapsedSeconds() * 60.0);
float y = bounds.y2() - fmodf(t - dragOffset_, (float)totalHeight);
for (int i = 0; i < numItems; i++) {
float alpha = linearInOut(y+32, 64, bounds.y2() - 192, 64);
const float yOffset = fmodf(t - dragOffset_, (float)contentsHeight);
float y = bounds.h - yOffset;
for (int i = 0; i < numItems; i++, y += itemHeight) {
if (y + itemHeight < 0.0f)
continue;
if (y > bounds.h)
continue;
float fadeLength = 64.0f;
float alpha = linearInOut(y, 64, bounds.h - fadeLength * 2.0f, 64);
uint32_t textColor = colorAlpha(dc.GetTheme().infoStyle.fgColor, alpha);
if (alpha > 0.0f) {
dc.SetFontScale(ease(alpha), ease(alpha));
dc.DrawText(credits[i], bounds.centerX(), y, textColor, ALIGN_HCENTER);
dc.DrawText(credits[i], bounds.centerX(), y + bounds.y, textColor, ALIGN_HCENTER);
dc.SetFontScale(1.0f, 1.0f);
}
y += itemHeight;
}
dc.Flush();
+1 -17
View File
@@ -158,27 +158,11 @@ private:
class CreditsScreen : public UIDialogScreenWithBackground {
public:
CreditsScreen();
void update() override;
void DrawForeground(UIContext &ui) override;
void touch(const TouchInput &touch) override;
protected:
void CreateViews() override;
const char *tag() const override { return "Credits"; }
private:
void OnPPSSPPOrg(UI::EventParams &e);
void OnPrivacy(UI::EventParams &e);
void OnForums(UI::EventParams &e);
void OnDiscord(UI::EventParams &e);
void OnShare(UI::EventParams &e);
void OnX(UI::EventParams &e);
double startTime_ = 0.0;
double dragYStart_ = -1.0;
double dragOffset_ = 0.0;
double dragYOffsetStart_ = 0.0;
};
class SettingInfoMessage : public UI::LinearLayout {
+6
View File
@@ -143,6 +143,12 @@ static const ImageMeta imageIDs[] = {
{"I_FILE_COPY", false},
{"I_WEB_BROWSER", false},
{"I_WIFI", false},
{"I_LOGO_X", false},
{"I_LOGO_DISCORD", false},
{"I_LINK_OUT", false},
{"I_SHARE", false},
{"I_LOGO_PLAY_STORE", false},
{"I_LOGO_APP_STORE", false},
};
static std::string PNGNameFromID(std::string_view id) {
+2
View File
@@ -474,6 +474,8 @@ bool System_GetPropertyBool(SystemProperty prop) {
return (androidVersion >= 21) && (deviceType != DEVICE_TYPE_VR); // when ACTION_OPEN_DOCUMENT_TREE was added
case SYSPROP_SUPPORTS_OPEN_FILE_IN_EDITOR:
return false; // Update if we add support in FileUtil.cpp: OpenFileInEditor
case SYSPROP_SUPPORTS_SHARE_TEXT:
return true;
case SYSPROP_APP_GOLD:
#ifdef GOLD
return true;
-1
View File
@@ -1127,7 +1127,6 @@ translators5 =
translators6 =
website = ‎الموقع الألكتروني
written = ‎مكتوب في لغة C++ من أجل السرعة والمتانة
X @PPSSPP_emu = X @PPSSPP_emu
[RemoteISO]
Browse Games = ‎تصفح الألعاب
-1
View File
@@ -1119,7 +1119,6 @@ translators5 =
translators6 =
website = Check out the website:
written = Written in C++ for speed and portability
X @PPSSPP_emu = X @PPSSPP_emu
[RemoteISO]
Browse Games = Browse games
-1
View File
@@ -1069,7 +1069,6 @@ translators5 =
translators6 =
website = Азнаёмцеся з вэб-сайтам:
written = Напісана на C++ для хуткасці і партатыўнасці
X @PPSSPP_emu = X @PPSSPP_emu
[MemStick]
Already contains PSP data = Already contains PSP data
-1
View File
@@ -1119,7 +1119,6 @@ translators5 =
translators6 =
website = Хвърлете едно око на уеб сайта ни:
written = Написано в C++ за бързина и съвместимост
X @PPSSPP_emu = X @PPSSPP_emu
[RemoteISO]
Browse Games = Browse games
-1
View File
@@ -1119,7 +1119,6 @@ translators5 =
translators6 =
website = Check out the website:
written = Written in C++ for speed and portability
X @PPSSPP_emu = X @PPSSPP_emu
[RemoteISO]
Browse Games = Browse games
-1
View File
@@ -1119,7 +1119,6 @@ translators5 =
translators6 =
website = Navštivte naši stránku:
written = Vytvořeno v jazyce C++ pro rychlost a přenosnost
X @PPSSPP_emu = X @PPSSPP_emu
[RemoteISO]
Browse Games = Browse games
-1
View File
@@ -1119,7 +1119,6 @@ translators5 =
translators6 =
website = Mere info på webside:
written = Skrevet i C++ for hastighed og portabilitet
X @PPSSPP_emu = X @PPSSPP_emu
[RemoteISO]
Browse Games = Browse games
-1
View File
@@ -1109,7 +1109,6 @@ translators5 =
translators6 =
website = Mehr Infos auf der Webseite:
written = Programmiert in C++ für Geschwindigkeit und Portabilität
X @PPSSPP_emu = X @PPSSPP_emu
[RemoteISO]
Browse Games = Spiele durchsuchen
-1
View File
@@ -1119,7 +1119,6 @@ translators5 =
translators6 =
website = Ollongngi todai situsna mane:
written = Pake C++ digaraka yamo na malassi
X @PPSSPP_emu = X @PPSSPP_emu
[RemoteISO]
Browse Games = Browse games
-1
View File
@@ -1093,7 +1093,6 @@ translators5 =
translators6 =
website = Check out the website:
written = Written in C++ for speed and portability
X @PPSSPP_emu = X @PPSSPP_emu
[MemStick]
Already contains PSP data = Already contains PSP data
-1
View File
@@ -1120,7 +1120,6 @@ translators5 =
translators6 =
website = Visita el sitio web:
written = Escrito en C++ para una mejor portabilidad y velocidad
X @PPSSPP_emu = X @PPSSPP_emu
[RemoteISO]
Browse Games = Buscar juegos
-1
View File
@@ -1119,7 +1119,6 @@ translators5 =
translators6 =
website = Sitio web oficial
written = Escrito en lenguaje C++ para una mejor portabilidad y velocidad
X @PPSSPP_emu = X @PPSSPP_emu
[PSPSettings]
-1
View File
@@ -1119,7 +1119,6 @@ translators5 =
translators6 =
website = ‎:سری به وبسایت بزنید
written = ‎نوشته شده است C++ برای سریع و پرتابل بودن، نرم افزار با زبان برنامه نویسی
X @PPSSPP_emu = توییتر @PPSSPP_emu
[RemoteISO]
Browse Games = Browse games
-1
View File
@@ -1119,7 +1119,6 @@ translators5 =
translators6 =
website = Tutustu verkkosivustoon:
written = Kirjoitettu C++:ssa nopeutta ja siirrettävyyttä varten
X @PPSSPP_emu = X @PPSSPP_emu
[RemoteISO]
Browse Games = Selaa pelejä
-1
View File
@@ -1110,7 +1110,6 @@ title = Un émulateur de PSP rapide et portable
tools = Outils libres utilisés :
website = Visitez notre site :
written = Écrit en C++ pour la vitesse et la portabilité
X @PPSSPP_emu = X de PPSSPP
[RemoteISO]
Browse Games = Parcourir les jeux
-1
View File
@@ -1119,7 +1119,6 @@ translators5 =
translators6 =
website = Sitio web oficial:
written = Escrito en linguaxe C++ para unha mellor portabilidade e velocidade
X @PPSSPP_emu = X @PPSSPP_emu
[RemoteISO]
Browse Games = Browse games
-1
View File
@@ -1119,7 +1119,6 @@ translators5 =
translators6 =
website = Επισκεφθείτε την ιστοσελίδα:
written = Γραμμένο σε C++ για ταχύτητα και φορητότητα
X @PPSSPP_emu = X @PPSSPP_emu
[RemoteISO]
Browse Games = Περιήγηση παιχνιδιών
-1
View File
@@ -1119,7 +1119,6 @@ translators5 =
translators6 =
website = :כנסו אל האתר
written = למהירות וניידות C++ נכתב ב
X @PPSSPP_emu = X @PPSSPP_emu
[RemoteISO]
Browse Games = Browse games
-1
View File
@@ -1116,7 +1116,6 @@ translators5 =
translators6 =
website = רתאה לא וסנכ:
written = ב בתכנ ++C תודיינו תוריהמל
X @PPSSPP_emu = X @PPSSPP_emu
[RemoteISO]
Browse Games = Browse games
-1
View File
@@ -1119,7 +1119,6 @@ translators5 =
translators6 =
website = Pogledaj stranicu:
written = Napisan u C++ za brzinu i za pokretnost
X @PPSSPP_emu = X @PPSSPP_emu
[RemoteISO]
Browse Games = Pretraži igre
-1
View File
@@ -1119,7 +1119,6 @@ translators5 =
translators6 =
website = Nézd meg a honlapot:
written = C++ban írva a sebességért és portolhatóságért
X @PPSSPP_emu = X @PPSSPP_emu
[RemoteISO]
Browse Games = Játékok tallózása
-1
View File
@@ -1119,7 +1119,6 @@ translators5 = eerdfz
translators6 = XForYouX
website = Kunjungi situs:
written = Ditulis dalam bahasa C++ demi kecepatan dan portabilitas
X @PPSSPP_emu = X @PPSSPP_emu
[RemoteISO]
Browse Games = Telusuri permainan
-1
View File
@@ -1089,7 +1089,6 @@ translators5 =
translators6 =
website = Da' un'occhiata al sito web:
written = Scritto in C++ per velocità e portabilità
X @PPSSPP_emu = X @PPSSPP_emu
[MemStick]
Already contains PSP data = Contiene già dati PSP
-1
View File
@@ -1086,7 +1086,6 @@ translators5 =
translators6 =
website = ウェブサイトはこちら:
written = 速度と移植性を保つためにC++で書かれています
X @PPSSPP_emu = X @PPSSPP_emu
[MemStick]
Already contains PSP data = 既にPSPデータが存在しています。
-1
View File
@@ -1119,7 +1119,6 @@ translators5 =
translators6 =
website = Ngunjungi situs web kita:
written = Ditulis dalam C++ Kanggo kacepetan lan portabilitas
X @PPSSPP_emu = X @PPSSPP_emu
[RemoteISO]
Browse Games = Browse games
-1
View File
@@ -1069,7 +1069,6 @@ translators5 =
translators6 =
website = 웹사이트를 확인하세요:
written = 속도와 이식성을 위해 C++로 작성되었습니다.
X @PPSSPP_emu = X @PPSSPP_emu
[MemStick]
Already contains PSP data = 이미 PSP 데이터가 포함되어 있습니다.
-1
View File
@@ -1083,7 +1083,6 @@ translators5 =
translators6 =
website = Check out the website:
written = Written in C++ for speed and portability
X @PPSSPP_emu = X @PPSSPP_emu
[MemStick]
Already contains PSP data = Already contains PSP data
-1
View File
@@ -1119,7 +1119,6 @@ translators5 =
translators6 =
website = ກວດສອບຂໍ້ມູນທີ່ເວັບໄຊ:
written = ຂຽນໂດຍພາສາ C++ ເພື່ອປະສິດທິພາບ, ຄວາມໄວ ແລະຄວາມສະຖຽນ
X @PPSSPP_emu = X @PPSSPP_emu
[RemoteISO]
Browse Games = Browse games
-1
View File
@@ -1119,7 +1119,6 @@ translators5 =
translators6 =
website = Check out the website:
written = Parašyta C++ kalboje dėl greičio ir portabilumo
X @PPSSPP_emu = X @PPSSPP_emu
[RemoteISO]
Browse Games = Browse games
-1
View File
@@ -1119,7 +1119,6 @@ translators5 =
translators6 =
website = Lihat laman web:
written = Ditulis dengan C++ untuk kelajuan dan mudah alih
X @PPSSPP_emu = X @PPSSPP_emu
[RemoteISO]
Browse Games = Browse games
-1
View File
@@ -1119,7 +1119,6 @@ translators5 =
translators6 =
website = Bezoek de website:
written = Geschreven in C++ voor snelheid en draagbaarheid
X @PPSSPP_emu = X @PPSSPP_emu
[RemoteISO]
Browse Games = Games bladeren...
-1
View File
@@ -1119,7 +1119,6 @@ translators5 =
translators6 =
website = Check out the website:
written = Written in C++ for speed and portability
X @PPSSPP_emu = X @PPSSPP_emu
[RemoteISO]
Browse Games = Browse games
-1
View File
@@ -1116,7 +1116,6 @@ translators5 =
translators6 =
website = Zajrzyj na stronę:
written = Napisano w C++ dla wydajności i mobilności
X @PPSSPP_emu = X: @PPSSPP_emu
[RemoteISO]
Browse Games = Przeglądaj gry
-1
View File
@@ -1092,7 +1092,6 @@ translators5 =
translators6 =
website = Verifique o site da web:
written = Escrito em C++ pela velocidade e portabilidade
X @PPSSPP_emu = X @PPSSPP_emu
[MemStick]
Already contains PSP data = Já contém dados do PSP
-1
View File
@@ -1112,7 +1112,6 @@ translators5 =
translators6 =
website = Verifica o website:
written = PPSSPP foi escrito em C++ pela sua velocidade e portabilidade
X @PPSSPP_emu = X @PPSSPP_emu
[MemStick]
Already contains PSP data = Já contém dados da PSP
-1
View File
@@ -1120,7 +1120,6 @@ translators5 =
translators6 =
website = Uitați-vă la site:
written = Scris in C++ pt. viteză si portabilitate
X @PPSSPP_emu = X @PPSSPP_emu
[RemoteISO]
Browse Games = Browse games
-1
View File
@@ -1086,7 +1086,6 @@ translators5 =
translators6 =
website = Посетите наш веб-сайт:
written = Написан на C++ для скорости и портируемости
X @PPSSPP_emu = X @PPSSPP_emu
[MemStick]
Already contains PSP data = Уже содержит данные PSP
-1
View File
@@ -1070,7 +1070,6 @@ translators5 =
translators6 =
website = Kolla in webbsidan:
written = Skriven i C++ - prestanda och portabilitet
X @PPSSPP_emu = X @PPSSPP_emu
[PSPSettings]
Auto = Auto
-1
View File
@@ -1120,7 +1120,6 @@ translators5 =
translators6 =
website = Puntahan ang Website:
written = Nakasulat sa C++ para sa bilis at portability
X @PPSSPP_emu = X @PPSSPP_emu
[RemoteISO]
Browse Games = I-browse ang mga laro
-1
View File
@@ -1138,7 +1138,6 @@ translators5 =
translators6 =
website = เพิ่มเติมข้อมูลได้ที่เว็บไซต์:
written = เขียนโดยใช้ภาษา C++ เพื่อความรวดเร็ว และความเสถียร
X @PPSSPP_emu = ไปที่ X
[RemoteISO]
Browse Games = ค้นหาไปยังเกม
-1
View File
@@ -1120,7 +1120,6 @@ translators5 =
translators6 =
website = PPSSPP.org
written = Hız ve Taşınabilirlik için C++ ile Yazıldı
X @PPSSPP_emu = X @PPSSPP_emu
[RemoteISO]
Browse Games = Oyunlara Gözat
-1
View File
@@ -1119,7 +1119,6 @@ translators5 = ser.gutsalyuk@gmail.com
translators6 =
website = Відвідайте наш веб-сайт:
written = Написаний на C++ для швидкості \nта підтримці декількох платформ.
X @PPSSPP_emu = X @PPSSPP_emu
[RemoteISO]
Browse Games = Перегляд ігор
-1
View File
@@ -1119,7 +1119,6 @@ translators5 = Huy Song Tử,
translators6 =
website = Xem trên website:
written = Được viết bằng C++ cho tốc độ và portability
X @PPSSPP_emu = X @PPSSPP_emu
[RemoteISO]
Browse Games = Duyệt games
-1
View File
@@ -1120,7 +1120,6 @@ translators5 = wangdecode
translators6 =
website = 请查阅官方网站
written = 使用C++编写以保证速度与移植性
X @PPSSPP_emu = X @PPSSPP_emu
[RemoteISO]
Browse Games = 浏览游戏
-1
View File
@@ -1086,7 +1086,6 @@ translators5 =
translators6 =
website = 歡迎造訪我們的網站:
written = 使用 C++ 編寫,以保證建置速度和相容性
X @PPSSPP_emu = X @PPSSPP_emu
[MemStick]
Already contains PSP data = 已包含 PSP 資料
+2868 -2811
View File
File diff suppressed because it is too large. Load diff

Before

Width:  |  Height:  |  Size: 208 KiB

After

Width:  |  Height:  |  Size: 206 KiB

+2
View File
@@ -371,6 +371,8 @@ bool System_GetPropertyBool(SystemProperty prop) {
return true;
case SYSPROP_HAS_KEYBOARD:
return true;
case SYSPROP_SUPPORTS_SHARE_TEXT:
return true;
case SYSPROP_KEYBOARD_IS_SOFT:
// If a hardware keyboard is connected, and we add support, we could return false here.
return true;