mgba-ps3/src/platform/qt/GameBoy.cpp
2022-10-17 01:31:04 -07:00

109 lines
3.0 KiB
C++

/* Copyright (c) 2013-2020 Jeffrey Pfau
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "GameBoy.h"
#include <QCoreApplication>
#include <QMap>
using namespace QGBA;
static const QList<GBModel> s_gbModelList{
GB_MODEL_DMG,
GB_MODEL_SGB,
GB_MODEL_CGB,
GB_MODEL_AGB,
GB_MODEL_SCGB,
};
static const QList<GBMemoryBankControllerType> s_mbcList{
GB_MBC_NONE,
GB_MBC1,
GB_MBC2,
GB_MBC3,
GB_MBC3_RTC,
GB_MBC5,
GB_MBC5_RUMBLE,
GB_MBC6,
GB_MBC7,
GB_MMM01,
GB_POCKETCAM,
GB_TAMA5,
GB_HuC1,
GB_HuC3,
GB_UNL_WISDOM_TREE,
GB_UNL_PKJD,
GB_UNL_NT_OLD_1,
GB_UNL_NT_OLD_2,
GB_UNL_NT_NEW,
GB_UNL_BBD,
GB_UNL_HITEK,
GB_UNL_GGB81,
GB_UNL_LI_CHENG,
GB_UNL_SACHEN_MMC1,
GB_UNL_SACHEN_MMC2,
};
static QMap<GBModel, QString> s_gbModelNames;
static QMap<GBMemoryBankControllerType, QString> s_mbcNames;
#define tr(STR) QCoreApplication::translate("QGBA::GameBoy", STR)
QList<GBModel> GameBoy::modelList() {
return s_gbModelList;
}
QString GameBoy::modelName(GBModel model) {
if (s_gbModelNames.isEmpty()) {
s_gbModelNames[GB_MODEL_AUTODETECT] = tr("Autodetect");
s_gbModelNames[GB_MODEL_DMG] = tr("Game Boy (DMG)");
s_gbModelNames[GB_MODEL_MGB] = tr("Game Boy Pocket (MGB)");
s_gbModelNames[GB_MODEL_SGB] = tr("Super Game Boy (SGB)");
s_gbModelNames[GB_MODEL_SGB2] = tr("Super Game Boy 2 (SGB)");
s_gbModelNames[GB_MODEL_CGB] = tr("Game Boy Color (CGB)");
s_gbModelNames[GB_MODEL_AGB] = tr("Game Boy Advance (AGB)");
s_gbModelNames[GB_MODEL_SCGB] = tr("Super Game Boy Color (SGB + CGB)");
}
return s_gbModelNames[model];
}
QList<GBMemoryBankControllerType> GameBoy::mbcList() {
return s_mbcList;
}
QString GameBoy::mbcName(GBMemoryBankControllerType mbc) {
if (s_mbcNames.isEmpty()) {
s_mbcNames[GB_MBC_AUTODETECT] = tr("Autodetect");
s_mbcNames[GB_MBC_NONE] = tr("ROM Only");
s_mbcNames[GB_MBC1] = tr("MBC1");
s_mbcNames[GB_MBC2] = tr("MBC2");
s_mbcNames[GB_MBC3] = tr("MBC3");
s_mbcNames[GB_MBC3_RTC] = tr("MBC3 + RTC");
s_mbcNames[GB_MBC5] = tr("MBC5");
s_mbcNames[GB_MBC5_RUMBLE] = tr("MBC5 + Rumble");
s_mbcNames[GB_MBC6] = tr("MBC6");
s_mbcNames[GB_MBC7] = tr("MBC7 (Tilt)");
s_mbcNames[GB_MMM01] = tr("MMM01");
s_mbcNames[GB_HuC1] = tr("HuC-1");
s_mbcNames[GB_HuC3] = tr("HuC-3");
s_mbcNames[GB_POCKETCAM] = tr("Pocket Cam");
s_mbcNames[GB_TAMA5] = tr("TAMA5");
s_mbcNames[GB_UNL_WISDOM_TREE] = tr("Wisdom Tree");
s_mbcNames[GB_UNL_NT_OLD_1] = tr("NT (old 1)");
s_mbcNames[GB_UNL_NT_OLD_2] = tr("NT (old 2)");
s_mbcNames[GB_UNL_NT_NEW] = tr("NT (new)");
s_mbcNames[GB_UNL_PKJD] = tr("Pokémon Jade/Diamond");
s_mbcNames[GB_UNL_BBD] = tr("BBD");
s_mbcNames[GB_UNL_HITEK] = tr("Hitek");
s_mbcNames[GB_UNL_GGB81] = tr("GGB-81");
s_mbcNames[GB_UNL_LI_CHENG] = tr("Li Cheng");
s_mbcNames[GB_UNL_SACHEN_MMC1] = tr("Sachen (MMC1)");
s_mbcNames[GB_UNL_SACHEN_MMC2] = tr("Sachen (MMC2)");
}
return s_mbcNames[mbc];
}