diff --git a/CHANGES b/CHANGES index e9f4190ac..f79d47c7f 100644 --- a/CHANGES +++ b/CHANGES @@ -36,9 +36,15 @@ Misc: 0.10.0: (Future) Features: - Tool for converting scanned pictures of e-Reader cards to raw dotcode data +Misc: + - Qt: Rearrange menus some + +0.9.1: (2021-04-18) Emulation fixes: + - ARM: Fix LDM^ with empty rlist (fixes mgba.io/i/2127) - Core: Fix first event scheduling after loading savestate - GB Serialize: Fix switching speed modes when loading a state (fixes mgba.io/i/2097) + - GB: Fix skipping BIOS - GBA Memory: Fix loading Thumb savestates when in ARM mode - GBA Video: Fix window start on modes 3-5 with mosaic (fixes mgba.io/i/1690) - GBA Video: Fix mode 3-5 overflow with mosaic (fixes mgba.io/i/1691) @@ -49,11 +55,17 @@ Other fixes: - GBA Video: Fix mode 5 frame 1 caching (fixes mgba.io/i/2075) - GBA Video: Don't attempt to copy invalid registers when switching renderer - Qt: Fix crash when switching from high-resolution OpenGL renderer to software + - Qt: Fix OpenGL renderer lagging behind when fast-forwarding (fixes mgba.io/i/2094) + - Qt: Fix smudged window icon on Windows + - Qt: Fix saving settings enabling camera when camera name changes (fixes mgba.io/i/2125) + - Qt: Fix frames getting backlogged (fixes mgba.io/i/2122) + - Qt: Restore maximized state when starting (fixes mgba.io/i/487) Misc: - Core: Truncate preloading ROMs that slightly exceed max size (fixes mgba.io/i/2093) - GBA: Default-enable VBA bug compat for Ruby and Emerald ROM hacks - GBA Memory: Log GPIO writes on non-GPIO carts as Pak Hardware instead of Memory - Qt: Add ROM filename and size to bug reporter + - Qt: Improve handling of disabling VBA bug compat mode (fixes mgba.io/i/2129) 0.9.0: (2021-03-28) Features: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b085adeaa..c62a36b1e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -55,18 +55,18 @@ Enum values and `#define`s should be all caps with underscores. Good: static int _localVariable; - + struct LocalStruct { void (*methodName)(struct LocalStruct struct, param); - + int memberName; }; - + enum { ENUM_ITEM_1, ENUM_ITEM_2 }; - + void LocalStructCreate(struct LocalStruct* struct); void functionName(int argument); @@ -124,7 +124,7 @@ Bad (missing space): if (condition){ block; } - + ### Spacing Indentation should be done using tabs and should match the level of braces. Alignment within a line should be done sparingly, but only done with spaces. @@ -137,9 +137,9 @@ Good: #ifndef FILE_NAME_H #define FILE_NAME_H - + // Header - + #endif There should be no comment on the `#endif`. diff --git a/include/mgba-util/convolve.h b/include/mgba-util/convolve.h index cf7aa52af..2d101d351 100644 --- a/include/mgba-util/convolve.h +++ b/include/mgba-util/convolve.h @@ -26,6 +26,7 @@ void ConvolutionKernelFillCircle(struct ConvolutionKernel* kernel, bool normaliz void Convolve1DPad0PackedS32(const int32_t* restrict src, int32_t* restrict dst, size_t length, const struct ConvolutionKernel* restrict kernel); void Convolve2DClampPacked8(const uint8_t* restrict src, uint8_t* restrict dst, size_t width, size_t height, size_t stride, const struct ConvolutionKernel* restrict kernel); +void Convolve2DClampChannels8(const uint8_t* restrict src, uint8_t* restrict dst, size_t width, size_t height, size_t stride, size_t channels, const struct ConvolutionKernel* restrict kernel); CXX_GUARD_END diff --git a/res/nointro.dat b/res/nointro.dat index 6d37a5bfb..42eb3811a 100644 --- a/res/nointro.dat +++ b/res/nointro.dat @@ -1,7 +1,7 @@ clrmamepro ( name "Nintendo - Game Boy Advance" description "Nintendo - Game Boy Advance" - version 20210326-211504 + version 20210415-050230 author "aci68, Aringon, Bent, BigFred, C. V. Reynolds, chillerecke, DeadSkullzJr, Densetsu, DeriLoko3, einstein95, ElBarto, Enker, fuzzball, Gefflon, Hiccup, hking0036, hydr0x, InternalLoss, Jack, jimmsu, kazumi213, Money_114, niemand, omonim2007, Powerpuff, PPLToast, relax, RetroGamer, Rifu, SonGoku, Tauwasser, Vallaine01, Whovian9369, xuom2, zg" homepage No-Intro url "http://www.no-intro.org" @@ -11842,7 +11842,7 @@ game ( game ( name "Mother 3 (Japan) (Virtual Console)" description "Mother 3 (Japan) (Virtual Console)" - rom ( name "Mother 3 (Japan) (Virtual Console).gba" size 33554432 crc c704a567 sha1 A9FB9C36DF3B0FB24B266826F5853C56122F9D36 ) + rom ( name "Mother 3 (Japan) (Virtual Console).gba" size 33554432 crc c704a567 sha1 A9FB9C36DF3B0FB24B266826F5853C56122F9D36 flags verified ) ) game ( @@ -13450,7 +13450,7 @@ game ( game ( name "Pokemon - Version Rouge Feu (France)" description "Pokemon - Version Rouge Feu (France)" - rom ( name "Pokemon - Version Rouge Feu (France).gba" size 16777216 crc 5dc668f6 sha1 FC663907256F06A3A09E2D6B967BC9AF4919F111 ) + rom ( name "Pokemon - Version Rouge Feu (France).gba" size 16777216 crc 5dc668f6 sha1 FC663907256F06A3A09E2D6B967BC9AF4919F111 flags verified ) ) game ( @@ -19951,8 +19951,8 @@ game ( clrmamepro ( name "Nintendo - Game Boy" description "Nintendo - Game Boy" - version 20210311-081758 - author "aci68, akubi, Aringon, Bent, BigFred, BitLooter, C. V. Reynolds, chillerecke, darthcloud, DeadSkullzJr, Densetsu, DeriLoko3, ElBarto, foxe, fuzzball, Gefflon, Hiccup, hking0036, jimmsu, kazumi213, leekindo, Money_114, NGEfreak, omonim2007, Powerpuff, PPLToast, relax, RetroUprising, rpg2813, SonGoku, Tauwasser, xNo, xuom2" + version 20210412-150119 + author "aci68, akubi, Aringon, Bent, BigFred, BitLooter, C. V. Reynolds, chillerecke, darthcloud, DeadSkullzJr, Densetsu, DeriLoko3, ElBarto, foxe, fuzzball, Gefflon, Hiccup, hking0036, InternalLoss, jimmsu, kazumi213, leekindo, Money_114, NGEfreak, omonim2007, Powerpuff, PPLToast, relax, RetroUprising, rpg2813, SonGoku, Tauwasser, xNo, xuom2" homepage No-Intro url "http://www.no-intro.org" ) @@ -20170,7 +20170,7 @@ game ( game ( name "Akumajou Special - Boku Dracula-kun (Japan)" description "Akumajou Special - Boku Dracula-kun (Japan)" - rom ( name "Akumajou Special - Boku Dracula-kun (Japan).gb" size 262144 crc e8335398 sha1 F2F15DA8ED94BC8652C23965428F6D767E506E38 ) + rom ( name "Akumajou Special - Boku Dracula-kun (Japan).gb" size 262144 crc e8335398 sha1 F2F15DA8ED94BC8652C23965428F6D767E506E38 flags verified ) ) game ( @@ -20185,6 +20185,12 @@ game ( rom ( name "Aladdin (USA) (SGB Enhanced).gb" size 262144 crc af6bdc50 sha1 81B4E56AE235FBB123D7AD4BD7C1D96C3B69EB72 ) ) +game ( + name "Aladdin (World) (Disney Classic Games) (SGB Enhanced)" + description "Aladdin (World) (Disney Classic Games) (SGB Enhanced)" + rom ( name "Aladdin (World) (Disney Classic Games) (SGB Enhanced).gb" size 262144 crc 53918941 sha1 C59C44051E41DC6AC8C2F693CFF2BA1FEFFD32F0 flags verified ) +) + game ( name "Alfred Chicken (Europe)" description "Alfred Chicken (Europe)" @@ -21518,9 +21524,15 @@ game ( ) game ( - name "Contra (Japan)" - description "Contra (Japan)" - rom ( name "Contra (Japan).gb" size 131072 crc cde6de15 sha1 C8B34B5ABA3D448E357B59CDF106EE9B134713DB ) + name "Contra (Japan) (En)" + description "Contra (Japan) (En)" + rom ( name "Contra (Japan) (En).gb" size 131072 crc cde6de15 sha1 C8B34B5ABA3D448E357B59CDF106EE9B134713DB ) +) + +game ( + name "Contra (World) (Contra Anniversary Collection)" + description "Contra (World) (Contra Anniversary Collection)" + rom ( name "Contra (World) (Contra Anniversary Collection).gb" size 131072 crc cc67a046 sha1 6FEA1350AC04F418095CCA5F157A9C770A0505BC flags verified ) ) game ( @@ -22435,18 +22447,36 @@ game ( rom ( name "Final Fantasy Adventure (World) (Collection of Mana).gb" size 262144 crc 8e5e5097 sha1 BD8369977CFBBAF3CC57F6268B564D6B11C27D45 flags verified ) ) +game ( + name "Final Fantasy Legend (World) (Collection of SaGa)" + description "Final Fantasy Legend (World) (Collection of SaGa)" + rom ( name "Final Fantasy Legend (World) (Collection of SaGa).gb" size 131072 crc 00388844 sha1 42450483C9894863C7543F9695C0CBAFFDCB7E99 ) +) + game ( name "Final Fantasy Legend II (USA)" description "Final Fantasy Legend II (USA)" rom ( name "Final Fantasy Legend II (USA).gb" size 262144 crc 58314182 sha1 6AB6890E8F688BCD87E97886A1748A4D9D341909 flags verified ) ) +game ( + name "Final Fantasy Legend II (World) (Collection of SaGa)" + description "Final Fantasy Legend II (World) (Collection of SaGa)" + rom ( name "Final Fantasy Legend II (World) (Collection of SaGa).gb" size 262144 crc e84e051a sha1 EEDF962D01B733B5EAF2413905E59E671E04A51C ) +) + game ( name "Final Fantasy Legend III (USA)" description "Final Fantasy Legend III (USA)" rom ( name "Final Fantasy Legend III (USA).gb" size 262144 crc 3e454710 sha1 3864AFA48A97DB826FFDA1D31A7FF9C6C315D5C9 ) ) +game ( + name "Final Fantasy Legend III (World) (Collection of SaGa)" + description "Final Fantasy Legend III (World) (Collection of SaGa)" + rom ( name "Final Fantasy Legend III (World) (Collection of SaGa).gb" size 262144 crc 0c5171ef sha1 5190B0EF6264E26AF21DC0097FD5608CB619FB63 ) +) + game ( name "Final Fantasy Legend, The (USA)" description "Final Fantasy Legend, The (USA)" @@ -24511,6 +24541,12 @@ game ( rom ( name "Lion King, The (Europe).gb" size 524288 crc 8fc3ca73 sha1 043D29EDE2AF013C000FF650231C10B3F62D7ACA flags verified ) ) +game ( + name "Lion King, The (World) (Disney Classic Games)" + description "Lion King, The (World) (Disney Classic Games)" + rom ( name "Lion King, The (World) (Disney Classic Games).gb" size 524288 crc e435ed72 sha1 170C071DB25DA7A2B39DD1FB2675ACEB8EEB87A1 flags verified ) +) + game ( name "Litti's Summer Sports (Germany)" description "Litti's Summer Sports (Germany)" @@ -24697,6 +24733,12 @@ game ( rom ( name "Makai Toushi Sa-Ga (Japan) (Rev 1).gb" size 131072 crc 1953820f sha1 CBF480BC92BD98BAE4FB79294B604D341FE58CBE flags verified ) ) +game ( + name "Makai Toushi Sa-Ga (World) (Ja) (Rev 1) (Collection of SaGa)" + description "Makai Toushi Sa-Ga (World) (Ja) (Rev 1) (Collection of SaGa)" + rom ( name "Makai Toushi Sa-Ga (World) (Ja) (Rev 1) (Collection of SaGa).gb" size 131072 crc 0006612d sha1 3CE39646BFFE38A9C8FD4913F0E950BAE061D094 ) +) + game ( name "Makaimura Gaiden - The Demon Darkness (Japan)" description "Makaimura Gaiden - The Demon Darkness (Japan)" @@ -26041,6 +26083,12 @@ game ( rom ( name "Operation C (USA).gb" size 131072 crc 2ebbc1ae sha1 1DC3E1C62E62F77AC633408B544AC1D02B3761EB flags verified ) ) +game ( + name "Operation C (World) (Contra Anniversary Collection)" + description "Operation C (World) (Contra Anniversary Collection)" + rom ( name "Operation C (World) (Contra Anniversary Collection).gb" size 131072 crc a7a5d9c2 sha1 BD528F1B20051502E2B4418845E0C6698E1C5B4B flags verified ) +) + game ( name "Osawagase! Penguin Boy (Japan)" description "Osawagase! Penguin Boy (Japan)" @@ -26758,13 +26806,13 @@ game ( game ( name "Pokemon - Version Jaune - Edition Speciale Pikachu (France) (CGB+SGB Enhanced)" description "Pokemon - Version Jaune - Edition Speciale Pikachu (France) (CGB+SGB Enhanced)" - rom ( name "Pokemon - Version Jaune - Edition Speciale Pikachu (France) (CGB+SGB Enhanced).gb" size 1048576 crc d03426e9 sha1 0ACEEC0EF7AA2CA5AA831554598D91F61A925591 ) + rom ( name "Pokemon - Version Jaune - Edition Speciale Pikachu (France) (CGB+SGB Enhanced).gb" size 1048576 crc d03426e9 sha1 0ACEEC0EF7AA2CA5AA831554598D91F61A925591 flags verified ) ) game ( name "Pokemon - Version Rouge (France) (SGB Enhanced)" description "Pokemon - Version Rouge (France) (SGB Enhanced)" - rom ( name "Pokemon - Version Rouge (France) (SGB Enhanced).gb" size 1048576 crc 337fce11 sha1 47A7622FA30E6402A3891FE65B3A930BF9BD7AEC ) + rom ( name "Pokemon - Version Rouge (France) (SGB Enhanced).gb" size 1048576 crc 337fce11 sha1 47A7622FA30E6402A3891FE65B3A930BF9BD7AEC flags verified ) ) game ( @@ -26983,6 +27031,12 @@ game ( rom ( name "Probotector (Europe).gb" size 131072 crc c9acc4f4 sha1 45482A44CE0CDFA33FC58A8A8AFE2D7284DFA498 flags verified ) ) +game ( + name "Probotector (World) (Contra Anniversary Collection)" + description "Probotector (World) (Contra Anniversary Collection)" + rom ( name "Probotector (World) (Contra Anniversary Collection).gb" size 131072 crc 1c03c0ee sha1 BC58585F8A1B2E27712AE5D44E3D851F4535A53F flags verified ) +) + game ( name "Probotector 2 (Europe) (SGB Enhanced)" description "Probotector 2 (Europe) (SGB Enhanced)" @@ -27505,12 +27559,24 @@ game ( rom ( name "Sa-Ga 2 - Hihou Densetsu (Japan) (Rev 1).gb" size 262144 crc f6cfcfb1 sha1 96EF7D31AD098A620BA7AC57AFEF416972707EA3 flags verified ) ) +game ( + name "Sa-Ga 2 - Hihou Densetsu (World) (Ja) (Rev 1) (Collection of SaGa)" + description "Sa-Ga 2 - Hihou Densetsu (World) (Ja) (Rev 1) (Collection of SaGa)" + rom ( name "Sa-Ga 2 - Hihou Densetsu (World) (Ja) (Rev 1) (Collection of SaGa).gb" size 262144 crc 2fe38e18 sha1 1DF1F6E277BF6406B865DD5A3E12C0277C3C65F2 ) +) + game ( name "Sa-Ga 3 - Jikuu no Hasha (Japan)" description "Sa-Ga 3 - Jikuu no Hasha (Japan)" rom ( name "Sa-Ga 3 - Jikuu no Hasha (Japan).gb" size 262144 crc 575d6d9d sha1 C8DCBEFC0352B0590FD85A683D983B5510A63519 ) ) +game ( + name "Sa-Ga 3 - Jikuu no Hasha (World) (Ja) (Collection of SaGa)" + description "Sa-Ga 3 - Jikuu no Hasha (World) (Ja) (Collection of SaGa)" + rom ( name "Sa-Ga 3 - Jikuu no Hasha (World) (Ja) (Collection of SaGa).gb" size 262144 crc dc4f4e34 sha1 8125677EE63E9ABB4B956ED0BEE18FAE3E04193B ) +) + game ( name "Sagaia (Japan)" description "Sagaia (Japan)" @@ -28810,7 +28876,7 @@ game ( game ( name "Tecmo Bowl GB (Japan)" description "Tecmo Bowl GB (Japan)" - rom ( name "Tecmo Bowl GB (Japan).gb" size 262144 crc cfd74e34 sha1 2447006C578E1DF0256E9155C8B65FA2A6B0004B ) + rom ( name "Tecmo Bowl GB (Japan).gb" size 262144 crc cfd74e34 sha1 2447006C578E1DF0256E9155C8B65FA2A6B0004B flags verified ) ) game ( @@ -30004,8 +30070,8 @@ game ( clrmamepro ( name "Nintendo - Game Boy Color" description "Nintendo - Game Boy Color" - version 20210303-092238 - author "akubi, Aringon, Bent, BigFred, BitLooter, C. V. Reynolds, chillerecke, coraz, darthcloud, DeadSkullzJr, Densetsu, DeriLoko3, foxe, fuzzball, Hiccup, hking0036, kazumi213, Money_114, NGEfreak, omonim2007, PPLToast, relax, Rifu, SonGoku, Tauwasser, Whovian9369, xuom2, zg" + version 20210410-081930 + author "akubi, Aringon, Bent, BigFred, BitLooter, C. V. Reynolds, chillerecke, coraz, darthcloud, DeadSkullzJr, Densetsu, DeriLoko3, foxe, fuzzball, Hiccup, hking0036, InternalLoss, kazumi213, Money_114, NGEfreak, omonim2007, PPLToast, relax, Rifu, SonGoku, Tauwasser, Whovian9369, xuom2, zg" homepage No-Intro url "http://www.no-intro.org" ) @@ -34873,7 +34939,7 @@ game ( game ( name "Mobile Golf (Japan)" description "Mobile Golf (Japan)" - rom ( name "Mobile Golf (Japan).gbc" size 4194304 crc 35fc5b32 sha1 FDE414FC9EFEF2C30D1A9E0A2ED35AD2EFC0EDEE ) + rom ( name "Mobile Golf (Japan).gbc" size 4194304 crc 35fc5b32 sha1 FDE414FC9EFEF2C30D1A9E0A2ED35AD2EFC0EDEE flags verified ) ) game ( @@ -35887,7 +35953,7 @@ game ( game ( name "Pokemon - Silberne Edition (Germany) (Beta) (SGB Enhanced) (GB Compatible)" description "Pokemon - Silberne Edition (Germany) (Beta) (SGB Enhanced) (GB Compatible)" - rom ( name "Pokemon - Silberne Edition (Germany) (Beta) (SGB Enhanced) (GB Compatible).gbc" size 2097152 crc 576f5ced sha1 76FA60D66B2F22A035ADC54C61AAD9A415C894CD ) + rom ( name "Pokemon - Silberne Edition (Germany) (Beta) (SGB Enhanced) (GB Compatible).gbc" size 2097152 crc 576f5ced sha1 76FA60D66B2F22A035ADC54C61AAD9A415C894CD flags verified ) ) game ( diff --git a/res/patrons.txt b/res/patrons.txt index 244976221..11c1d4c57 100644 --- a/res/patrons.txt +++ b/res/patrons.txt @@ -2,7 +2,11 @@ Miras Absar Emily A. Bellows Jaime J. Denizard Benedikt Feih +Tyler Jenkins Jezzabel +MichaelK_ +Lothar Serra Mari NimbusFox Petru-Sebastian Toader +Lucas Towers Zach diff --git a/src/arm/isa-arm.c b/src/arm/isa-arm.c index cb73c13ea..b20a51f90 100644 --- a/src/arm/isa-arm.c +++ b/src/arm/isa-arm.c @@ -487,7 +487,7 @@ ATTRIBUTE_NOINLINE static void _neutralS(struct ARMCore* cpu, int32_t d) { #define ARM_MS_PRE_load \ enum PrivilegeMode privilegeMode; \ - if (!(rs & 0x8000)) { \ + if (!(rs & 0x8000) && rs) { \ privilegeMode = cpu->privilegeMode; \ ARMSetPrivilegeMode(cpu, MODE_SYSTEM); \ } @@ -495,7 +495,7 @@ ATTRIBUTE_NOINLINE static void _neutralS(struct ARMCore* cpu, int32_t d) { #define ARM_MS_POST_store ARMSetPrivilegeMode(cpu, privilegeMode); #define ARM_MS_POST_load \ - if (!(rs & 0x8000)) { \ + if (!(rs & 0x8000) && rs) { \ ARMSetPrivilegeMode(cpu, privilegeMode); \ } else if (_ARMModeHasSPSR(cpu->cpsr.priv)) { \ cpu->cpsr = cpu->spsr; \ diff --git a/src/gb/gb.c b/src/gb/gb.c index c5b21b548..ad3f3bbcb 100644 --- a/src/gb/gb.c +++ b/src/gb/gb.c @@ -582,13 +582,13 @@ void GBSkipBIOS(struct GB* gb) { mTimingDeschedule(&gb->timing, &gb->timer.event); mTimingSchedule(&gb->timing, &gb->timer.event, gb->timer.nextDiv); - GBIOWrite(gb, GB_REG_LCDC, 0x91); - gb->memory.io[GB_REG_BANK] = 0x1; - GBVideoSkipBIOS(&gb->video); - if (gb->biosVf) { GBUnmapBIOS(gb); } + + GBIOWrite(gb, GB_REG_LCDC, 0x91); + gb->memory.io[GB_REG_BANK] = 0x1; + GBVideoSkipBIOS(&gb->video); } void GBMapBIOS(struct GB* gb) { diff --git a/src/gba/core.c b/src/gba/core.c index 33d72ae61..3d1ffffc3 100644 --- a/src/gba/core.c +++ b/src/gba/core.c @@ -308,6 +308,7 @@ static void _GBACoreLoadConfig(struct mCore* core, const struct mCoreConfig* con mCoreConfigCopyValue(&core->config, config, "gba.bios"); mCoreConfigCopyValue(&core->config, config, "gba.forceGbp"); mCoreConfigCopyValue(&core->config, config, "gba.audioHle"); + mCoreConfigCopyValue(&core->config, config, "vbaBugCompat"); #ifndef DISABLE_THREADING mCoreConfigCopyValue(&core->config, config, "threadedVideo"); @@ -621,6 +622,10 @@ static void _GBACoreReset(struct mCore* core) { if (mCoreConfigGetIntValue(&core->config, "gba.forceGbp", &fakeBool)) { forceGbp = fakeBool; } + bool vbaBugCompat = true; + if (mCoreConfigGetIntValue(&core->config, "vbaBugCompat", &fakeBool)) { + vbaBugCompat = fakeBool; + } if (!forceGbp) { gba->memory.hw.devices &= ~HW_GB_PLAYER_DETECTION; } @@ -628,6 +633,9 @@ static void _GBACoreReset(struct mCore* core) { if (forceGbp) { gba->memory.hw.devices |= HW_GB_PLAYER_DETECTION; } + if (!vbaBugCompat) { + gba->vbaBugCompat = false; + } #if !defined(MINIMAL_CORE) || MINIMAL_CORE < 2 if (!gba->biosVf && core->opts.useBios) { diff --git a/src/platform/libretro/libretro.c b/src/platform/libretro/libretro.c index aa7c579e9..1f265150a 100644 --- a/src/platform/libretro/libretro.c +++ b/src/platform/libretro/libretro.c @@ -86,11 +86,25 @@ static unsigned imcapWidth; static unsigned imcapHeight; static size_t camStride; static bool deferredSetup = false; +static bool useBitmasks = true; static bool envVarsUpdated; static int32_t tiltX = 0; static int32_t tiltY = 0; static int32_t gyroZ = 0; +static const int keymap[] = { + RETRO_DEVICE_ID_JOYPAD_A, + RETRO_DEVICE_ID_JOYPAD_B, + RETRO_DEVICE_ID_JOYPAD_SELECT, + RETRO_DEVICE_ID_JOYPAD_START, + RETRO_DEVICE_ID_JOYPAD_RIGHT, + RETRO_DEVICE_ID_JOYPAD_LEFT, + RETRO_DEVICE_ID_JOYPAD_UP, + RETRO_DEVICE_ID_JOYPAD_DOWN, + RETRO_DEVICE_ID_JOYPAD_R, + RETRO_DEVICE_ID_JOYPAD_L, +}; + static void _initSensors(void) { if (sensorsInitDone) { return; @@ -322,6 +336,8 @@ void retro_init(void) { }; environCallback(RETRO_ENVIRONMENT_SET_INPUT_DESCRIPTORS, &inputDescriptors); + useBitmasks = environCallback(RETRO_ENVIRONMENT_GET_INPUT_BITMASKS, NULL); + // TODO: RETRO_ENVIRONMENT_SET_SUPPORT_NO_GAME when BIOS booting is supported rumbleInitDone = false; @@ -383,6 +399,7 @@ void retro_deinit(void) { gyroEnabled = false; luxSensorEnabled = false; sensorsInitDone = false; + useBitmasks = false; } void retro_run(void) { @@ -415,16 +432,17 @@ void retro_run(void) { } keys = 0; - keys |= (!!inputCallback(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_A)) << 0; - keys |= (!!inputCallback(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_B)) << 1; - keys |= (!!inputCallback(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_SELECT)) << 2; - keys |= (!!inputCallback(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_START)) << 3; - keys |= (!!inputCallback(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_RIGHT)) << 4; - keys |= (!!inputCallback(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_LEFT)) << 5; - keys |= (!!inputCallback(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_UP)) << 6; - keys |= (!!inputCallback(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_DOWN)) << 7; - keys |= (!!inputCallback(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_R)) << 8; - keys |= (!!inputCallback(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_L)) << 9; + int i; + if (useBitmasks) { + int16_t joypadMask = inputCallback(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_MASK); + for (i = 0; i < sizeof(keymap) / sizeof(*keymap); ++i) { + keys |= ((joypadMask >> keymap[i]) & 1) << i; + } + } else { + for (i = 0; i < sizeof(keymap) / sizeof(*keymap); ++i) { + keys |= (!!inputCallback(0, RETRO_DEVICE_JOYPAD, 0, keymap[i])) << i; + } + } core->setKeys(core, keys); if (!luxSensorUsed) { @@ -619,8 +637,8 @@ static void _setupMaps(struct mCore* core) { i++; /* Map External RAM */ - if (gb->memory.sram) { - descs[i].ptr = gb->memory.sram; + if (savedataSize) { + descs[i].ptr = savedata; descs[i].start = GB_BASE_EXTERNAL_RAM; descs[i].len = savedataSize; i++; @@ -691,6 +709,7 @@ bool retro_load_game(const struct retro_game_info* game) { blip_set_rates(core->getAudioChannel(core, 1), core->frequency(core), 32768); core->setPeripheral(core, mPERIPH_RUMBLE, &rumble); + core->setPeripheral(core, mPERIPH_ROTATION, &rotation); savedata = anonymousMemoryMap(SIZE_CART_FLASH1M); memset(savedata, 0xFF, SIZE_CART_FLASH1M); diff --git a/src/platform/qt/AudioProcessor.cpp b/src/platform/qt/AudioProcessor.cpp index 96f04d58b..d0b2b1f24 100644 --- a/src/platform/qt/AudioProcessor.cpp +++ b/src/platform/qt/AudioProcessor.cpp @@ -5,6 +5,8 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "AudioProcessor.h" +#include "ConfigController.h" + #ifdef BUILD_SDL #include "AudioProcessorSDL.h" #endif @@ -51,8 +53,18 @@ AudioProcessor::~AudioProcessor() { stop(); } +void AudioProcessor::configure(ConfigController* config) { + const mCoreOptions* opts = config->options(); + setBufferSamples(opts->audioBuffers); + requestSampleRate(opts->sampleRate); +} + void AudioProcessor::setInput(std::shared_ptr input) { m_context = input; + connect(input.get(), &CoreController::stopping, this, &AudioProcessor::stop); + connect(input.get(), &CoreController::fastForwardChanged, this, &AudioProcessor::inputParametersChanged); + connect(input.get(), &CoreController::paused, this, &AudioProcessor::pause); + connect(input.get(), &CoreController::unpaused, this, &AudioProcessor::start); } void AudioProcessor::stop() { diff --git a/src/platform/qt/AudioProcessor.h b/src/platform/qt/AudioProcessor.h index 8043ad21c..50feb0a13 100644 --- a/src/platform/qt/AudioProcessor.h +++ b/src/platform/qt/AudioProcessor.h @@ -15,17 +15,15 @@ struct mCoreThread; namespace QGBA { +class ConfigController; + class AudioProcessor : public QObject { Q_OBJECT public: enum class Driver { -#ifdef BUILD_QT_MULTIMEDIA QT_MULTIMEDIA = 0, -#endif -#ifdef BUILD_SDL SDL = 1, -#endif }; static AudioProcessor* create(); @@ -37,6 +35,8 @@ public: int getBufferSamples() const { return m_samples; } virtual unsigned sampleRate() const = 0; + virtual void configure(ConfigController*); + public slots: virtual void setInput(std::shared_ptr); virtual void stop(); diff --git a/src/platform/qt/Display.cpp b/src/platform/qt/Display.cpp index 067399f01..0ea500f73 100644 --- a/src/platform/qt/Display.cpp +++ b/src/platform/qt/Display.cpp @@ -5,10 +5,13 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "Display.h" +#include "ConfigController.h" #include "DisplayGL.h" #include "DisplayQt.h" #include "LogController.h" +#include + using namespace QGBA; #if defined(BUILD_GL) || defined(BUILD_GLES2) || defined(USE_EPOXY) @@ -97,6 +100,35 @@ QSize Display::viewportSize() { return ds; } +void Display::attach(std::shared_ptr controller) { + connect(controller.get(), &CoreController::stateLoaded, this, &Display::resizeContext); + connect(controller.get(), &CoreController::stateLoaded, this, &Display::forceDraw); + connect(controller.get(), &CoreController::rewound, this, &Display::forceDraw); + connect(controller.get(), &CoreController::paused, this, &Display::pauseDrawing); + connect(controller.get(), &CoreController::unpaused, this, &Display::unpauseDrawing); + connect(controller.get(), &CoreController::frameAvailable, this, &Display::framePosted); + connect(controller.get(), &CoreController::statusPosted, this, &Display::showMessage); + connect(controller.get(), &CoreController::didReset, this, &Display::resizeContext); +} + +void Display::configure(ConfigController* config) { + const mCoreOptions* opts = config->options(); + lockAspectRatio(opts->lockAspectRatio); + lockIntegerScaling(opts->lockIntegerScaling); + interframeBlending(opts->interframeBlending); + filter(opts->resampleVideo); + config->updateOption("showOSD"); +#if defined(BUILD_GL) || defined(BUILD_GLES2) + if (opts->shader) { + struct VDir* shader = VDirOpen(opts->shader); + if (shader && supportsShaders()) { + setShaders(shader); + shader->close(shader); + } + } +#endif +} + void Display::resizeEvent(QResizeEvent*) { m_messagePainter.resize(size(), m_lockAspectRatio, devicePixelRatio()); } diff --git a/src/platform/qt/Display.h b/src/platform/qt/Display.h index 763efca99..5babf8d59 100644 --- a/src/platform/qt/Display.h +++ b/src/platform/qt/Display.h @@ -18,6 +18,7 @@ struct VideoShader; namespace QGBA { +class ConfigController; class CoreController; class VideoProxy; @@ -42,6 +43,8 @@ public: bool isFiltered() const { return m_filter; } bool isShowOSD() const { return m_showOSD; } + virtual void attach(std::shared_ptr); + virtual void configure(ConfigController*); virtual void startDrawing(std::shared_ptr) = 0; virtual bool isDrawing() const = 0; virtual bool supportsShaders() const = 0; diff --git a/src/platform/qt/DisplayGL.cpp b/src/platform/qt/DisplayGL.cpp index f00161c49..b2d997a6d 100644 --- a/src/platform/qt/DisplayGL.cpp +++ b/src/platform/qt/DisplayGL.cpp @@ -374,7 +374,7 @@ void PainterGL::resizeContext() { if (m_dims == size) { return; } - dequeueAll(); + dequeueAll(false); m_backend->setDimensions(m_backend, size.width(), size.height()); } @@ -432,26 +432,19 @@ void PainterGL::start() { } void PainterGL::draw() { - if (!m_active || m_queue.isEmpty()) { - return; - } - if (m_lagging >= 1) { + if (!m_started || m_queue.isEmpty()) { return; } mCoreSync* sync = &m_context->thread()->impl->sync; if (!mCoreSyncWaitFrameStart(sync)) { mCoreSyncWaitFrameEnd(sync); - ++m_lagging; if ((sync->audioWait || sync->videoFrameWait) && m_delayTimer.elapsed() < 1000 / m_surface->screen()->refreshRate()) { QTimer::singleShot(1, this, &PainterGL::draw); } return; } dequeue(); - if (m_videoProxy) { - // Only block on the next frame if we're trying to run at roughly 60fps via audio - m_videoProxy->setBlocking(sync->audioWait && std::abs(60.f - sync->fpsTarget) < 0.1f); - } + bool forceRedraw = !m_videoProxy; if (!m_delayTimer.isValid()) { m_delayTimer.start(); } else { @@ -459,13 +452,23 @@ void PainterGL::draw() { while (m_delayTimer.nsecsElapsed() + 2000000 < 1000000000 / sync->fpsTarget) { QThread::usleep(500); } + forceRedraw = true; + } else if (!forceRedraw) { + forceRedraw = m_delayTimer.nsecsElapsed() + 2000000 >= 1000000000 / m_surface->screen()->refreshRate(); } - m_delayTimer.restart(); } mCoreSyncWaitFrameEnd(sync); - performDraw(); - m_backend->swap(m_backend); + if (forceRedraw) { + m_delayTimer.restart(); + performDraw(); + m_backend->swap(m_backend); + } + + QMutexLocker locker(&m_mutex); + if (!m_queue.isEmpty()) { + QTimer::singleShot(1, this, &PainterGL::draw); + } } void PainterGL::forceDraw() { @@ -482,7 +485,7 @@ void PainterGL::forceDraw() { void PainterGL::stop() { m_active = false; m_started = false; - dequeueAll(); + dequeueAll(false); if (m_context) { if (m_videoProxy) { m_videoProxy->detach(m_context.get()); @@ -504,10 +507,10 @@ void PainterGL::stop() { void PainterGL::pause() { m_active = false; + dequeueAll(true); } void PainterGL::unpause() { - m_lagging = 0; m_active = true; } @@ -541,7 +544,6 @@ void PainterGL::enqueue(const uint32_t* backing) { memcpy(buffer, backing, size.width() * size.height() * BYTES_PER_PIXEL); } } - m_lagging = 0; m_queue.enqueue(buffer); } @@ -558,20 +560,24 @@ void PainterGL::dequeue() { m_buffer = buffer; } -void PainterGL::dequeueAll() { +void PainterGL::dequeueAll(bool keep) { + QMutexLocker locker(&m_mutex); uint32_t* buffer = 0; - m_mutex.lock(); while (!m_queue.isEmpty()) { buffer = m_queue.dequeue(); - if (buffer) { + if (keep) { + if (m_buffer && buffer) { + m_free.append(m_buffer); + m_buffer = buffer; + } + } else if (buffer) { m_free.append(buffer); } } - if (m_buffer) { + if (m_buffer && !keep) { m_free.append(m_buffer); m_buffer = nullptr; } - m_mutex.unlock(); } void PainterGL::setVideoProxy(std::shared_ptr proxy) { diff --git a/src/platform/qt/DisplayGL.h b/src/platform/qt/DisplayGL.h index 111f0cc88..e8951be93 100644 --- a/src/platform/qt/DisplayGL.h +++ b/src/platform/qt/DisplayGL.h @@ -136,12 +136,11 @@ private: void makeCurrent(); void performDraw(); void dequeue(); - void dequeueAll(); + void dequeueAll(bool keep = false); std::array, 3> m_buffers; QList m_free; QQueue m_queue; - QAtomicInt m_lagging = 0; uint32_t* m_buffer = nullptr; QPainter m_painter; QMutex m_mutex; diff --git a/src/platform/qt/GBAOverride.cpp b/src/platform/qt/GBAOverride.cpp index ca819e6bc..885a5d3ac 100644 --- a/src/platform/qt/GBAOverride.cpp +++ b/src/platform/qt/GBAOverride.cpp @@ -6,6 +6,7 @@ #include "GBAOverride.h" #include +#include using namespace QGBA; @@ -13,7 +14,11 @@ void GBAOverride::apply(struct mCore* core) { if (core->platform(core) != mPLATFORM_GBA) { return; } - GBAOverrideApply(static_cast(core->board), &override); + GBA* gba = static_cast(core->board); + if (!vbaBugCompatSet) { + override.vbaBugCompat = gba->vbaBugCompat; + } + GBAOverrideApply(gba, &override); } void GBAOverride::identify(const struct mCore* core) { diff --git a/src/platform/qt/GBAOverride.h b/src/platform/qt/GBAOverride.h index 2cbc6944b..8b07659fd 100644 --- a/src/platform/qt/GBAOverride.h +++ b/src/platform/qt/GBAOverride.h @@ -18,6 +18,7 @@ public: void save(struct Configuration*) const override; struct GBACartridgeOverride override; + bool vbaBugCompatSet; }; } diff --git a/src/platform/qt/OverrideView.cpp b/src/platform/qt/OverrideView.cpp index 375e2b360..ccf8a6fae 100644 --- a/src/platform/qt/OverrideView.cpp +++ b/src/platform/qt/OverrideView.cpp @@ -144,6 +144,7 @@ void OverrideView::updateOverrides() { gba->override.idleLoop = IDLE_LOOP_NONE; gba->override.mirroring = false; gba->override.vbaBugCompat = false; + gba->vbaBugCompatSet = false; if (!m_ui.hwAutodetect->isChecked()) { hasOverride = true; @@ -168,9 +169,10 @@ void OverrideView::updateOverrides() { hasOverride = true; gba->override.hardware |= HW_GB_PLAYER_DETECTION; } - if (m_ui.vbaBugCompat->isChecked()) { + if (m_ui.vbaBugCompat->checkState() != Qt::PartiallyChecked) { hasOverride = true; - gba->override.vbaBugCompat = true; + gba->vbaBugCompatSet = true; + gba->override.vbaBugCompat = m_ui.vbaBugCompat->isChecked(); } bool ok; @@ -270,7 +272,7 @@ void OverrideView::gameStopped() { m_ui.tabWidget->setEnabled(true); m_ui.savetype->setCurrentIndex(0); m_ui.idleLoop->clear(); - m_ui.vbaBugCompat->setChecked(false); + m_ui.vbaBugCompat->setCheckState(Qt::PartiallyChecked); m_ui.mbc->setCurrentIndex(0); m_ui.gbModel->setCurrentIndex(0); diff --git a/src/platform/qt/OverrideView.ui b/src/platform/qt/OverrideView.ui index d34d0aa22..a1eb8a1d0 100644 --- a/src/platform/qt/OverrideView.ui +++ b/src/platform/qt/OverrideView.ui @@ -186,6 +186,12 @@ VBA bug compatibility mode + + true + + + Qt::PartiallyChecked + diff --git a/src/platform/qt/SettingsView.cpp b/src/platform/qt/SettingsView.cpp index db7da4dc1..08d776f9b 100644 --- a/src/platform/qt/SettingsView.cpp +++ b/src/platform/qt/SettingsView.cpp @@ -431,6 +431,7 @@ void SettingsView::updateConfig() { saveSetting("dynamicTitle", m_ui.dynamicTitle); saveSetting("videoScale", m_ui.videoScale); saveSetting("gba.forceGbp", m_ui.forceGbp); + saveSetting("vbaBugCompat", m_ui.vbaBugCompat); if (m_ui.audioBufferSize->currentText().toInt() > 8192) { m_ui.audioBufferSize->setCurrentText("8192"); @@ -505,9 +506,12 @@ void SettingsView::updateConfig() { } QVariant camera = m_ui.camera->itemData(m_ui.camera->currentIndex()); - if (camera != m_controller->getQtOption("camera")) { + QVariant oldCamera = m_controller->getQtOption("camera"); + if (camera != oldCamera) { m_controller->setQtOption("camera", camera); - emit cameraChanged(camera.toByteArray()); + if (!oldCamera.isNull()) { + emit cameraChanged(camera.toByteArray()); + } } QLocale language = m_ui.languages->itemData(m_ui.languages->currentIndex()).toLocale(); @@ -626,6 +630,7 @@ void SettingsView::reloadConfig() { loadSetting("gba.audioHle", m_ui.audioHle); loadSetting("dynamicTitle", m_ui.dynamicTitle, true); loadSetting("gba.forceGbp", m_ui.forceGbp); + loadSetting("vbaBugCompat", m_ui.vbaBugCompat, true); m_ui.libraryStyle->setCurrentIndex(loadSetting("libraryStyle").toInt()); diff --git a/src/platform/qt/SettingsView.ui b/src/platform/qt/SettingsView.ui index 58a8f1fc5..be79b5ce2 100644 --- a/src/platform/qt/SettingsView.ui +++ b/src/platform/qt/SettingsView.ui @@ -873,21 +873,28 @@ - + + + + Enable Game Boy Player features by default + + + + Qt::Horizontal - + Save state extra data: - + Screenshot @@ -897,7 +904,7 @@ - + Save game @@ -907,7 +914,7 @@ - + Cheat codes @@ -917,21 +924,21 @@ - + Qt::Horizontal - + Load state extra data: - + Screenshot @@ -941,24 +948,27 @@ - + Save game - + Cheat codes - - + + - Enable Game Boy Player features by default + Enable VBA bug compatibility in ROM hacks + + + true diff --git a/src/platform/qt/VideoProxy.cpp b/src/platform/qt/VideoProxy.cpp index 60cb938b8..7c6366229 100644 --- a/src/platform/qt/VideoProxy.cpp +++ b/src/platform/qt/VideoProxy.cpp @@ -14,7 +14,7 @@ using namespace QGBA; VideoProxy::VideoProxy() { mVideoLoggerRendererCreate(&m_logger.d, false); m_logger.d.block = true; - m_logger.d.waitOnFlush = false; + m_logger.d.waitOnFlush = true; m_logger.d.init = &cbind<&VideoProxy::init>; m_logger.d.reset = &cbind<&VideoProxy::reset>; diff --git a/src/platform/qt/Window.cpp b/src/platform/qt/Window.cpp index 01ba521ee..6760960fd 100644 --- a/src/platform/qt/Window.cpp +++ b/src/platform/qt/Window.cpp @@ -280,8 +280,7 @@ void Window::reloadConfig() { if (m_controller) { m_controller->loadConfig(m_config); if (m_audioProcessor) { - m_audioProcessor->setBufferSamples(opts->audioBuffers); - m_audioProcessor->requestSampleRate(opts->sampleRate); + m_audioProcessor->configure(m_config); } m_display->resizeContext(); } @@ -686,6 +685,7 @@ void Window::showEvent(QShowEvent* event) { m_wasOpened = true; resizeFrame(m_screenWidget->sizeHint()); QVariant windowPos = m_config->getQtOption("windowPos"); + bool maximized = m_config->getQtOption("maximized").toBool(); QRect geom = windowHandle()->screen()->availableGeometry(); if (!windowPos.isNull() && geom.contains(windowPos.toPoint())) { move(windowPos.toPoint()); @@ -694,6 +694,9 @@ void Window::showEvent(QShowEvent* event) { rect.moveCenter(geom.center()); move(rect.topLeft()); } + if (maximized) { + showMaximized(); + } if (m_fullscreenOnStart) { enterFullScreen(); m_fullscreenOnStart = false; @@ -718,6 +721,7 @@ void Window::hideEvent(QHideEvent* event) { void Window::closeEvent(QCloseEvent* event) { emit shutdown(); m_config->setQtOption("windowPos", pos()); + m_config->setQtOption("maximized", isMaximized()); if (m_savedScale > 0) { m_config->setOption("height", GBA_VIDEO_VERTICAL_PIXELS * m_savedScale); @@ -1027,20 +1031,10 @@ void Window::reloadDisplayDriver() { m_screenWidget->unsetCursor(); }); - const mCoreOptions* opts = m_config->options(); - m_display->lockAspectRatio(opts->lockAspectRatio); - m_display->lockIntegerScaling(opts->lockIntegerScaling); - m_display->interframeBlending(opts->interframeBlending); - m_display->filter(opts->resampleVideo); - m_config->updateOption("showOSD"); + m_display->configure(m_config); #if defined(BUILD_GL) || defined(BUILD_GLES2) - if (opts->shader) { - struct VDir* shader = VDirOpen(opts->shader); - if (shader && m_display->supportsShaders()) { - m_display->setShaders(shader); - m_shaderView->refreshShaders(); - shader->close(shader); - } + if (m_shaderView) { + m_shaderView->refreshShaders(); } #endif @@ -1065,16 +1059,10 @@ void Window::reloadAudioDriver() { m_audioProcessor.reset(); } - const mCoreOptions* opts = m_config->options(); m_audioProcessor = std::unique_ptr(AudioProcessor::create()); m_audioProcessor->setInput(m_controller); - m_audioProcessor->setBufferSamples(opts->audioBuffers); - m_audioProcessor->requestSampleRate(opts->sampleRate); + m_audioProcessor->configure(m_config); m_audioProcessor->start(); - connect(m_controller.get(), &CoreController::stopping, m_audioProcessor.get(), &AudioProcessor::stop); - connect(m_controller.get(), &CoreController::fastForwardChanged, m_audioProcessor.get(), &AudioProcessor::inputParametersChanged); - connect(m_controller.get(), &CoreController::paused, m_audioProcessor.get(), &AudioProcessor::pause); - connect(m_controller.get(), &CoreController::unpaused, m_audioProcessor.get(), &AudioProcessor::start); } void Window::changeRenderer() { @@ -1192,6 +1180,7 @@ void Window::openStateWindow(LoadSave ls) { if (!wasPaused) { m_controller->setPaused(true); connect(m_stateWindow, &LoadSaveState::closed, [this]() { + m_screenWidget->filter(m_config->getOption("resampleVideo").toInt()); if (m_controller) { m_controller->setPaused(false); } @@ -1199,7 +1188,27 @@ void Window::openStateWindow(LoadSave ls) { } m_stateWindow->setAttribute(Qt::WA_DeleteOnClose); m_stateWindow->setMode(ls); - updateFrame(); + + QImage still(m_controller->getPixels()); + if (still.format() != QImage::Format_RGB888) { + still = still.convertToFormat(QImage::Format_RGB888); + } + if (still.height() > 512 || still.width() > 512) { + still = still.scaled(384, 256, Qt::KeepAspectRatio, Qt::SmoothTransformation).convertToFormat(QImage::Format_RGB888); + } + QImage output(still.size(), QImage::Format_RGB888); + size_t dims[] = {7, 7}; + struct ConvolutionKernel kern; + ConvolutionKernelCreate(&kern, 2, dims); + ConvolutionKernelFillRadial(&kern, true); + Convolve2DClampChannels8(still.constBits(), output.bits(), still.width(), still.height(), still.bytesPerLine(), 3, &kern); + ConvolutionKernelDestroy(&kern); + + QPixmap pixmap; + pixmap.convertFromImage(output); + m_screenWidget->setPixmap(pixmap); + m_screenWidget->filter(true); + #ifndef Q_OS_MAC menuBar()->show(); #endif @@ -1247,9 +1256,6 @@ void Window::setupMenu(QMenuBar* menubar) { m_actions.addMenu(tr("Recent"), "mru", "file"); m_actions.addSeparator("file"); - m_actions.addAction(tr("Make portable"), "makePortable", this, &Window::tryMakePortable, "file"); - m_actions.addSeparator("file"); - Action* loadState = addGameAction(tr("&Load state"), "loadState", [this]() { this->openStateWindow(LoadSave::LOAD); }, "file", QKeySequence("F10")); @@ -1327,9 +1333,6 @@ void Window::setupMenu(QMenuBar* menubar) { m_platformActions.insert(mPLATFORM_GB, quickSave); } - m_actions.addSeparator("file"); - m_actions.addAction(tr("Load camera image..."), "loadCamImage", this, &Window::loadCamImage, "file"); - #ifdef M_CORE_GBA m_actions.addSeparator("file"); m_actions.addAction(tr("Convert save game..."), "convertSave", openControllerTView(), "file"); @@ -1466,6 +1469,8 @@ void Window::setupMenu(QMenuBar* menubar) { } #ifdef M_CORE_GB + m_actions.addAction(tr("Load camera image..."), "loadCamImage", this, &Window::loadCamImage, "emu"); + Action* gbPrint = addGameAction(tr("Game Boy Printer..."), "gbPrint", [this]() { PrinterView* view = new PrinterView(m_controller); openView(view); @@ -1633,6 +1638,7 @@ void Window::setupMenu(QMenuBar* menubar) { m_actions.addSeparator("tools"); m_actions.addAction(tr("Settings..."), "settings", this, &Window::openSettingsWindow, "tools"); + m_actions.addAction(tr("Make portable"), "makePortable", this, &Window::tryMakePortable, "tools"); #ifdef USE_DEBUGGERS m_actions.addSeparator("tools"); @@ -1880,10 +1886,12 @@ void Window::focusCheck() { } void Window::updateFrame() { + if (static_cast(m_screenWidget->layout())->currentWidget() != m_display.get()) { + return; + } QPixmap pixmap; pixmap.convertFromImage(m_controller->getPixels()); m_screenWidget->setPixmap(pixmap); - emit paused(true); } void Window::setController(CoreController* controller, const QString& fname) { @@ -1944,6 +1952,9 @@ void Window::setController(CoreController* controller, const QString& fname) { #endif connect(m_controller.get(), &CoreController::paused, &m_inputController, &InputController::resumeScreensaver); + connect(m_controller.get(), &CoreController::paused, [this]() { + emit paused(true); + }); connect(m_controller.get(), &CoreController::unpaused, [this]() { emit paused(false); }); @@ -2004,14 +2015,7 @@ void Window::setController(CoreController* controller, const QString& fname) { } void Window::attachDisplay() { - connect(m_controller.get(), &CoreController::stateLoaded, m_display.get(), &Display::resizeContext); - connect(m_controller.get(), &CoreController::stateLoaded, m_display.get(), &Display::forceDraw); - connect(m_controller.get(), &CoreController::rewound, m_display.get(), &Display::forceDraw); - connect(m_controller.get(), &CoreController::paused, m_display.get(), &Display::pauseDrawing); - connect(m_controller.get(), &CoreController::unpaused, m_display.get(), &Display::unpauseDrawing); - connect(m_controller.get(), &CoreController::frameAvailable, m_display.get(), &Display::framePosted); - connect(m_controller.get(), &CoreController::statusPosted, m_display.get(), &Display::showMessage); - connect(m_controller.get(), &CoreController::didReset, m_display.get(), &Display::resizeContext); + m_display->attach(m_controller); connect(m_display.get(), &Display::drawingStarted, this, &Window::changeRenderer); m_display->startDrawing(m_controller); } diff --git a/src/platform/qt/input/InputController.cpp b/src/platform/qt/input/InputController.cpp index b86a8578c..ebd7816f8 100644 --- a/src/platform/qt/input/InputController.cpp +++ b/src/platform/qt/input/InputController.cpp @@ -184,23 +184,23 @@ void InputController::setPlatform(mPlatform platform) { InputControllerImage* image = static_cast(context); image->w = w; image->h = h; + image->p->m_cameraActive = true; if (image->image.isNull()) { image->image.load(":/res/no-cam.png"); } #ifdef BUILD_QT_MULTIMEDIA - if (image->p->m_config->getQtOption("cameraDriver").toInt() == static_cast(CameraDriver::QT_MULTIMEDIA)) { - QByteArray camera = image->p->m_config->getQtOption("camera").toByteArray(); - if (!camera.isNull()) { - QMetaObject::invokeMethod(image->p, "setCamera", Q_ARG(QByteArray, camera)); - } - QMetaObject::invokeMethod(image->p, "setupCam"); + QByteArray camera = image->p->m_config->getQtOption("camera").toByteArray(); + if (!camera.isNull()) { + image->p->m_cameraDevice = camera; } + QMetaObject::invokeMethod(image->p, "setupCam"); #endif }; m_image.stopRequestImage = [](mImageSource* context) { InputControllerImage* image = static_cast(context); #ifdef BUILD_QT_MULTIMEDIA + image->p->m_cameraActive = false; QMetaObject::invokeMethod(image->p, "teardownCam"); #endif }; @@ -1035,10 +1035,18 @@ void InputController::setLuminanceValue(uint8_t value) { void InputController::setupCam() { #ifdef BUILD_QT_MULTIMEDIA + if (m_config->getQtOption("cameraDriver").toInt() != static_cast(CameraDriver::QT_MULTIMEDIA)) { + return; + } + if (!m_camera) { - m_camera = std::make_unique(); + m_camera = std::make_unique(m_cameraDevice); connect(m_camera.get(), &QCamera::statusChanged, this, &InputController::prepareCamSettings, Qt::QueuedConnection); } + if (m_camera->status() == QCamera::UnavailableStatus) { + m_camera.reset(); + return; + } m_camera->setCaptureMode(QCamera::CaptureVideo); m_camera->setViewfinder(&m_videoDumper); m_camera->load(); @@ -1089,20 +1097,22 @@ void InputController::prepareCamSettings(QCamera::Status status) { void InputController::teardownCam() { #ifdef BUILD_QT_MULTIMEDIA if (m_camera) { - m_camera->stop(); + m_camera->unload(); + m_camera.reset(); } #endif } void InputController::setCamera(const QByteArray& name) { #ifdef BUILD_QT_MULTIMEDIA - bool needsRestart = false; - if (m_camera) { - needsRestart = m_camera->state() == QCamera::ActiveState; + if (m_cameraDevice == name) { + return; } - m_camera = std::make_unique(name); - connect(m_camera.get(), &QCamera::statusChanged, this, &InputController::prepareCamSettings, Qt::QueuedConnection); - if (needsRestart) { + m_cameraDevice = name; + if (m_camera && m_camera->state() == QCamera::ActiveState) { + teardownCam(); + } + if (m_cameraActive) { setupCam(); } #endif diff --git a/src/platform/qt/input/InputController.h b/src/platform/qt/input/InputController.h index ce5d6f34c..ce195ba83 100644 --- a/src/platform/qt/input/InputController.h +++ b/src/platform/qt/input/InputController.h @@ -191,6 +191,8 @@ private: } m_image; #ifdef BUILD_QT_MULTIMEDIA + bool m_cameraActive = false; + QByteArray m_cameraDevice; std::unique_ptr m_camera; VideoDumper m_videoDumper; #endif diff --git a/src/platform/qt/main.cpp b/src/platform/qt/main.cpp index 98f57723d..5dc302b1f 100644 --- a/src/platform/qt/main.cpp +++ b/src/platform/qt/main.cpp @@ -61,9 +61,17 @@ int main(int argc, char* argv[]) { mSubParser subparser; initParserForGraphics(&subparser, &graphicsOpts); bool loaded = configController.parseArguments(&args, argc, argv, &subparser); - if (loaded && args.showHelp) { - usage(argv[0], subparser.usage); - return 0; + if (loaded) { + if (args.showHelp) { + usage(argv[0], subparser.usage); + freeArguments(&args); + return 0; + } + if (args.showVersion) { + version(argv[0]); + freeArguments(&args); + return 0; + } } QApplication::setApplicationName(projectName); @@ -79,7 +87,7 @@ int main(int argc, char* argv[]) { GBAApp application(argc, argv, &configController); #ifndef Q_OS_MAC - QApplication::setWindowIcon(QIcon(":/res/mgba-1024.png")); + QApplication::setWindowIcon(QIcon(":/res/mgba-256.png")); #endif QTranslator qtTranslator; diff --git a/src/platform/qt/ts/medusa-emu-de.ts b/src/platform/qt/ts/medusa-emu-de.ts index 85a6742dd..64c9651e2 100644 --- a/src/platform/qt/ts/medusa-emu-de.ts +++ b/src/platform/qt/ts/medusa-emu-de.ts @@ -3803,12 +3803,12 @@ Game Boy Advance ist eine eingetragene Marke von Nintendo Co., Ltd. QGBA::ReportView - + Bug report archive Fehlerbericht speichern - + ZIP archive (*.zip) ZIP-Archiv (*.zip) @@ -4037,7 +4037,7 @@ Game Boy Advance ist eine eingetragene Marke von Nintendo Co., Ltd. QGBA::Window - + Game Boy Advance ROMs (%1) Game Boy Advance-ROMs (%1) @@ -4047,61 +4047,81 @@ Game Boy Advance ist eine eingetragene Marke von Nintendo Co., Ltd.DS-ROMs (%1) - + Game Boy ROMs (%1) Game Boy-ROMs (%1) - + All ROMs (%1) Alle ROMs (%1) - + %1 Video Logs (*.mvl) %1 Video-Logs (*.mvl) - + Archives (%1) Archive (%1) - - - + + + Select ROM ROM auswählen - - + + Select save Speicherdatei wählen - + Select patch Patch wählen - + Patches (*.ips *.ups *.bps) Korrekturen (*.ips *.ups *.bps) - + + Select e-Reader card images + + + + + Image file (*.png *.jpg *.jpeg) + + + + + Conversion finished + + + + + %1 of %2 e-Reader cards converted successfully. + + + + Select image Bild auswählen - + Image file (*.png *.gif *.jpg *.jpeg);;All files (*) Bild-Datei (*.png *.gif *.jpg *.jpeg);;Alle Dateien (*) - - + + GameShark saves (*.sps *.xps) GameShark-Speicherdaten (*.sps *.xps) @@ -4116,22 +4136,22 @@ Game Boy Advance ist eine eingetragene Marke von Nintendo Co., Ltd.DS-Unterstützung erfordert ein Abbild des BIOS und der Firmware. - + Select video log Video-Log auswählen - + Video logs (*.mvl) Video-Logs (*.mvl) - + Crash Absturz - + The game has crashed with the following error: %1 @@ -4140,418 +4160,423 @@ Game Boy Advance ist eine eingetragene Marke von Nintendo Co., Ltd. - + Unimplemented BIOS call Nicht implementierter BIOS-Aufruf - + This game uses a BIOS call that is not implemented. Please use the official BIOS for best experience. Dieses Spiel verwendet einen BIOS-Aufruf, der nicht implementiert ist. Bitte verwenden Sie für die beste Spielerfahrung das offizielle BIOS. - + Failed to create an appropriate display device, falling back to software display. Games may run slowly, especially with larger windows. Es konnte kein geeignetes Ausgabegerät erstellt werden, stattdessen wird Software-Rendering als Rückfalloption genutzt. Spiele laufen möglicherweise langsamer, besonders innerhalb großer Fenster. - + Really make portable? Portablen Modus wirklich aktivieren? - + This will make the emulator load its configuration from the same directory as the executable. Do you want to continue? Diese Einstellung wird den Emulator so konfigurieren, dass er seine Konfiguration aus dem gleichen Verzeichnis wie die Programmdatei lädt. Möchten Sie fortfahren? - + Restart needed Neustart benötigt - + Some changes will not take effect until the emulator is restarted. Einige Änderungen werden erst übernommen, wenn der Emulator neu gestartet wurde. - + - Player %1 of %2 - Spieler %1 von %2 - + %1 - %2 %1 - %2 - + %1 - %2 - %3 %1 - %2 - %3 - + %1 - %2 (%3 fps) - %4 %1 - %2 (%3 Bilder/Sekunde) - %4 - + &File &Datei - + Load &ROM... &ROM laden... - + Load ROM in archive... ROM aus Archiv laden... - + Load &patch... &Patch laden... - + Boot BIOS BIOS booten - + Replace ROM... ROM ersetzen... - + + Convert e-Reader card image to raw... + + + + ROM &info... ROM-&Informationen... - + Recent Zuletzt verwendet - + Make portable Portablen Modus aktivieren - + &Load state Savestate (aktueller Zustand) &laden - + Load state file... Savestate-Datei laden... - + &Save state Savestate (aktueller Zustand) &speichern - + Save state file... Savestate-Datei speichern... - + Quick load Schnell laden - + Quick save Schnell speichern - + Load recent Lade zuletzt gespeicherten Savestate - + Save recent Speichere aktuellen Zustand - + Undo load state Laden des Savestate rückgängig machen - + Undo save state Speichern des Savestate rückgängig machen - - + + State &%1 Savestate &%1 - + Load camera image... Lade Kamerabild... - + Convert save game... Spielstand konvertieren... - + New multiplayer window Neues Multiplayer-Fenster - + Connect to Dolphin... Mit Dolphin verbinden... - + Report bug... Fehler melden... - + E&xit &Beenden - + &Emulation &Emulation - + &Reset Zu&rücksetzen - + Sh&utdown Schli&eßen - + Yank game pak Spielmodul herausziehen - + &Pause &Pause - + &Next frame &Nächstes Bild - + Fast forward (held) Schneller Vorlauf (gehalten) - + &Fast forward Schneller &Vorlauf - + Fast forward speed Vorlauf-Geschwindigkeit - + Unbounded Unbegrenzt - + %0x %0x - + Rewind (held) Zurückspulen (gehalten) - + Re&wind Zur&ückspulen - + Step backwards Schrittweiser Rücklauf - + Sync to &video Mit &Video synchronisieren - + Sync to &audio Mit &Audio synchronisieren - + Solar sensor Sonnen-Sensor - + Increase solar level Sonnen-Level erhöhen - + Decrease solar level Sonnen-Level verringern - + Brightest solar level Hellster Sonnen-Level - + Darkest solar level Dunkelster Sonnen-Level - + Brightness %1 Helligkeit %1 - + BattleChip Gate... BattleChip Gate... - + Audio/&Video Audio/&Video - + Frame size Bildgröße - + Toggle fullscreen Vollbildmodus umschalten - + Lock aspect ratio Seitenverhältnis korrigieren - + Force integer scaling Pixelgenaue Skalierung (Integer scaling) - + Interframe blending Interframe-Überblendung - + Frame&skip Frame&skip - + Mute Stummschalten - + FPS target Bildwiederholrate - + Take &screenshot &Screenshot erstellen - + F12 F12 - + Clear Leeren - + Game Boy Printer... Game Boy Printer... - + Video layers Video-Ebenen - + Audio channels Audio-Kanäle - + Adjust layer placement... Lage der Bildebenen anpassen... - + &Tools &Werkzeuge - + View &logs... &Logs ansehen... - + Game &overrides... Spiel-&Überschreibungen... - + &Cheats... &Cheats... - + Open debugger console... Debugger-Konsole öffnen... - + Start &GDB server... &GDB-Server starten... - + Settings... Einstellungen... @@ -4571,228 +4596,228 @@ Game Boy Advance ist eine eingetragene Marke von Nintendo Co., Ltd.DS - + Select folder Ordner auswählen - + Save games (%1) Spielstände (%1) - + Select save game Spielstand auswählen - + mGBA save state files (%1) mGBA-Savestates (%1) - - + + Select save state Savestate auswählen - + Select e-Reader dotcode e-Reader-Code auswählen - + e-Reader card (*.raw *.bin *.bmp) e-Reader-Karte (*.raw *.bin *.bmp) - + Couldn't Start Konnte nicht gestartet werden - + Could not start game. Spiel konnte nicht gestartet werden. - + Add folder to library... Ordner zur Bibliothek hinzufügen... - + Load alternate save game... Alternativen Spielstand laden... - + Load temporary save game... Temporären Spielstand laden... - + Scan e-Reader dotcodes... e-Reader-Code einlesen... - + Import GameShark Save... GameShare-Speicherstand importieren... - + Export GameShark Save... GameShark-Speicherstand exportieren... - + About... Über... - + %1× %1x - + Bilinear filtering Bilineare Filterung - + Native (59.7275) Nativ (59.7275) - + Record A/V... Audio/Video aufzeichnen... - + Record GIF/WebP/APNG... GIF/WebP/APNG aufzeichnen... - + Game Pak sensors... Spielmodul-Sensoren... - + View &palette... &Palette betrachten... - + View &sprites... &Sprites betrachten... - + View &tiles... &Tiles betrachten... - + View &map... &Map betrachten... - + &Frame inspector... &Bildbetrachter... - + View memory... Speicher betrachten... - + Search memory... Speicher durchsuchen... - + View &I/O registers... &I/O-Register betrachten... - + Record debug video log... Video-Protokoll aufzeichnen... - + Stop debug video log Aufzeichnen des Video-Protokolls beenden - + Exit fullscreen Vollbildmodus beenden - + GameShark Button (held) GameShark-Taste (gehalten) - + Autofire Autofeuer - + Autofire A Autofeuer A - + Autofire B Autofeuer B - + Autofire L Autofeuer L - + Autofire R Autofeuer R - + Autofire Start Autofeuer Start - + Autofire Select Autofeuer Select - + Autofire Up Autofeuer nach oben - + Autofire Right Autofeuer rechts - + Autofire Down Autofeuer nach unten - + Autofire Left Autofeuer links diff --git a/src/platform/qt/ts/medusa-emu-es.ts b/src/platform/qt/ts/medusa-emu-es.ts index 38c187e69..0985e22ea 100644 --- a/src/platform/qt/ts/medusa-emu-es.ts +++ b/src/platform/qt/ts/medusa-emu-es.ts @@ -3757,12 +3757,12 @@ Game Boy Advance es una marca registrada de Nintendo Co., Ltd. QGBA::ReportView - + Bug report archive Archivo del reporte de bugs - + ZIP archive (*.zip) Archivo ZIP (*.zip) @@ -3991,101 +3991,101 @@ Game Boy Advance es una marca registrada de Nintendo Co., Ltd. QGBA::Window - + Game Boy Advance ROMs (%1) ROMs de Game Boy Advance (%1) - + Game Boy ROMs (%1) ROMs de Game Boy (%1) - + All ROMs (%1) Todas las ROMs (%1) - + %1 Video Logs (*.mvl) Video-registros de %1 (*.mvl) - + Archives (%1) Contenedores (%1) - - - + + + Select ROM Seleccionar ROM - + Select folder Seleccionar carpeta - - + + Select save Seleccionar guardado - + Select patch Seleccionar parche - + Patches (*.ips *.ups *.bps) Parches (*.ips *.ups *.bps) - + Select e-Reader dotcode Seleccionar dotcode del e-Reader - + e-Reader card (*.raw *.bin *.bmp) Tarjeta e-Reader (*.raw *.bin *.bmp) - + Select image Seleccionar imagen - + Image file (*.png *.gif *.jpg *.jpeg);;All files (*) Archivo de imagen (*.png *.gif *.jpg *.jpeg);;Todos los archivos (*) - - + + GameShark saves (*.sps *.xps) Guardados de GameShark (*.sps *.xps) - + Select video log Seleccionar video-registro - + Video logs (*.mvl) Video-registros (*.mvl) - + Crash Error fatal - + The game has crashed with the following error: %1 @@ -4094,629 +4094,654 @@ Game Boy Advance es una marca registrada de Nintendo Co., Ltd. %1 - + Unimplemented BIOS call Llamada a BIOS no implementada - + This game uses a BIOS call that is not implemented. Please use the official BIOS for best experience. Este juego utiliza una llamada al BIOS que no se ha implementado. Utiliza el BIOS oficial para obtener la mejor experiencia. - + Failed to create an appropriate display device, falling back to software display. Games may run slowly, especially with larger windows. No se pudo crear un dispositivo de pantalla apropiado, recurriendo a software. Los juegos pueden funcionar lentamente, especialmente con ventanas grandes. - + Really make portable? ¿Hacer "portable"? - + This will make the emulator load its configuration from the same directory as the executable. Do you want to continue? Esto hará que el emulador cargue su configuración desde el mismo directorio que el ejecutable. ¿Quieres continuar? - + Restart needed Reinicio necesario - + Some changes will not take effect until the emulator is restarted. Algunos cambios no surtirán efecto hasta que se reinicie el emulador. - + - Player %1 of %2 - Jugador %1 de %2 - + %1 - %2 %1 - %2 - + %1 - %2 - %3 %1 - %2 - %3 - + %1 - %2 (%3 fps) - %4 %1 - %2 (%3 fps) - %4 - + &File &Archivo - + Load &ROM... Cargar &ROM... - + Load ROM in archive... Cargar ROM desde contenedor... - + Add folder to library... Agregar carpeta a la biblioteca... - + Load &patch... Cargar &parche... - + Boot BIOS Arrancar BIOS - + Replace ROM... Reemplazar ROM... - + ROM &info... &Información de la ROM... - + Recent Recientes - + Make portable Hacer "portable" - + &Load state Ca&rgar estado - + Report bug... Reportar bug... - + About... Acerca de... - + Game Pak sensors... Sensores del cartucho... - + Clear Limpiar - + Load state file... Cargar archivo de estado... - + Save games (%1) Juegos guardados (%1) - + Select save game Elegir juego guardado - + mGBA save state files (%1) Archivos estados guardados mGBA (%1) - - + + Select save state Elegir estado guardado - + + Select e-Reader card images + + + + + Image file (*.png *.jpg *.jpeg) + + + + + Conversion finished + + + + + %1 of %2 e-Reader cards converted successfully. + + + + Load alternate save game... Elegir juego guardado alterno... - + Load temporary save game... Elegir juego guardado temporal... - + + Convert e-Reader card image to raw... + + + + &Save state Guardar e&stado - + Save state file... Guardar archivo de estado... - + Quick load Cargado rápido - + Quick save Guardado rápido - + Load recent Cargar reciente - + Save recent Guardar reciente - + Undo load state Deshacer cargar estado - + Undo save state Deshacer guardar estado - - + + State &%1 Estado &%1 - + Load camera image... Cargar imagen para la cámara... - + Convert save game... Convertir juego guardado... - + New multiplayer window Nueva ventana multijugador - + Connect to Dolphin... Conectar a Dolphin... - + E&xit Salir (&X) - + &Emulation &Emulación - + &Reset &Reinicializar - + Sh&utdown Apagar (&U) - + Yank game pak Tirar del cartucho - + &Pause &Pausar - + &Next frame Cuadro siguie&nte - + Fast forward (held) Avance rápido (mantener) - + &Fast forward &Avance rápido - + Fast forward speed Velocidad de avance rápido - + Unbounded Sin límite - + %0x %0x - + Rewind (held) Rebobinar (mantener) - + Re&wind Re&bobinar - + Step backwards Paso hacia atrás - + Sync to &video Sincronizar a &video - + Sync to &audio Sincronizar a au&dio - + Solar sensor Sensor solar - + Increase solar level Subir nivel - + Decrease solar level Bajar nivel - + Brightest solar level Más claro - + Darkest solar level Más oscuro - + Brightness %1 Brillo %1 - + Audio/&Video Audio/&video - + Frame size Tamaño del cuadro - + Toggle fullscreen Pantalla completa - + Lock aspect ratio Bloquear proporción de aspecto - + Force integer scaling Forzar escala a enteros - + Bilinear filtering Filtro bilineal - + Frame&skip &Salto de cuadros - + Mute Silenciar - + FPS target Objetivo de FPS - + Native (59.7275) Nativo (59,7275) - + Take &screenshot Tomar pan&tallazo - + F12 F12 - + Game Boy Printer... Game Boy Printer... - + BattleChip Gate... BattleChip Gate... - + %1× %1× - + Interframe blending Mezcla entre cuadros - + Record A/V... Grabar A/V... - + Video layers Capas de video - + Audio channels Canales de audio - + Adjust layer placement... Ajustar ubicación de capas... - + &Tools Herramien&tas - + View &logs... Ver re&gistros... - + Game &overrides... Ajustes específic&os por juego... - + Couldn't Start No se pudo iniciar - + Could not start game. No se pudo iniciar el juego. - + Scan e-Reader dotcodes... Escanear dotcodes del e-Reader... - + Import GameShark Save... Importar desde GameShark... - + Export GameShark Save... Exportar a GameShark... - + Record GIF/WebP/APNG... Grabar GIF/WebP/APNG... - + &Cheats... Tru&cos... - + Settings... Ajustes... - + Open debugger console... Abrir consola de depuración... - + Start &GDB server... Iniciar servidor &GDB... - + View &palette... Ver &paleta... - + View &sprites... Ver &sprites... - + View &tiles... Ver &tiles... - + View &map... Ver &mapa... - + &Frame inspector... Inspec&tor de cuadros... - + View memory... Ver memoria... - + Search memory... Buscar memoria... - + View &I/O registers... Ver registros &I/O... - + Record debug video log... Grabar registro de depuración de video... - + Stop debug video log Detener registro de depuración de video - + Exit fullscreen Salir de pantalla completa - + GameShark Button (held) Botón GameShark (mantener) - + Autofire Disparo automático - + Autofire A Disparo automático A - + Autofire B Disparo automático B - + Autofire L Disparo automático L - + Autofire R Disparo automático R - + Autofire Start Disparo automático Start - + Autofire Select Disparo automático Select - + Autofire Up Disparo automático Arriba - + Autofire Right Disparo automático Derecha - + Autofire Down Disparo automático Abajo - + Autofire Left Disparo automático Izquierda diff --git a/src/platform/qt/ts/medusa-emu-it.ts b/src/platform/qt/ts/medusa-emu-it.ts index 5aeb6521f..1a7fbf45a 100644 --- a/src/platform/qt/ts/medusa-emu-it.ts +++ b/src/platform/qt/ts/medusa-emu-it.ts @@ -221,37 +221,37 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd. Connect to Dolphin - + Connetti a Dolphin Local computer - + Computer locale IP address - + Indirizzo IP Connect - + Connetti Disconnect - + Disconnetti Close - + Chiudi Reset on connect - + Reimposta alla connessione @@ -508,7 +508,7 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd. Advanced settings - + Impostazioni avanzate @@ -1535,7 +1535,7 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd. Swap green components - + Scambia componenti verdi @@ -1685,7 +1685,7 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd. Integer part (low) - + Parte intera (lsb) @@ -1693,7 +1693,7 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd. Integer part (high) - + Parte intera (msb) @@ -2403,7 +2403,7 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd. Address (low) - + Indirizzo (lsb) @@ -2415,14 +2415,14 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd. Address (high) - + Indirizzo (msb) Sound frequency (low) - + Frequenza del suono (lsb) @@ -2927,17 +2927,17 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd. 4.19MHz - 4,19 MHz + 4,19 MHz 8.38MHz - 8,38 MHz + 8,38 MHz 16.78MHz - 16,78 MHz + 16,78 MHz @@ -2952,37 +2952,37 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd. Right/A - + Destra/A Left/B - + Sinistra/B Up/Select - + Sù/Select Down/Start - + Giù/Start Active D-pad - + D-pad attivo Active face buttons - + Pulsanti laterali attivi Internal clock - + Orologio interno @@ -2992,12 +2992,12 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd. Transfer active - + Trasferimento attivo Divider - + Divisore @@ -3008,25 +3008,25 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd. LCD STAT - + STAT LCD Timer - + Timer Serial - + Seriale Joypad - + Joypad @@ -3056,12 +3056,12 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd. Enable sprites - + Abilita sprite Double-height sprites - + Sprite ad altezza doppia @@ -3072,13 +3072,13 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd. 0x9800 – 0x9BFF - + 0x9800 – 0x9BFF 0x9C00 – 0x9FFF - + 0x9C00 - 0x9FFF @@ -3088,17 +3088,17 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd. 0x8800 – 0x87FF - + 0x8800 – 0x87FF 0x8000 – 0x8FFF - + 0x8000 – 0x8FFF Enable window - + Abilita finestra @@ -3108,7 +3108,7 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd. Enable LCD - + Abilita LCD @@ -3118,27 +3118,27 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd. 0: HBlank - + 0: HBlank 1: VBlank - + 1: VBlank 2: OAM scan - + 2: scansione OAM 3: HDraw - + 3: HDraw In LYC - + In LYC @@ -3163,7 +3163,7 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd. Current Y coordinate - + Coordinate Y correnti @@ -3206,55 +3206,55 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd. Prepare to switch speed - + Prepara a cambiare velocità Double speed - + Velocità doppia VRAM bank - + VRAM bank Length - + Lunghezza Timing - + Tempistica Write bit - + Bit di scrittura Read bit - + Bit di lettura Unknown - + Sconosciuto Current index - + Indice corrente Auto-increment - + Auto-incremento @@ -3271,22 +3271,22 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd. Sprite ordering - + Ordinamento sprite OAM order - + Ordine OAM x coordinate sorting - + ordinamento coordinate x WRAM bank - + WRAM bank @@ -3757,12 +3757,12 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd. QGBA::ReportView - + Bug report archive Archivio delle segnalazioni di bug - + ZIP archive (*.zip) Archivio ZIP (*.zip) @@ -3772,62 +3772,62 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd. Save games and save states (%1) - + Salvataggi e stati di salvataggio dei giochi (%1) Select save game or save state - + Seleziona salvataggio o stato di salvataggio Save games (%1) - + Salvataggi (%1) Select save game - + Seleziona salvataggio Conversion failed - + Conversione fallita Failed to convert the save game. This is probably a bug. - + Impossibile convertire il salvataggio. Molto probabilmente è dovuto ad un bug. No file selected - + Nessun file selezionato Could not open file - + Non è stato possibile aprire il file No valid formats found - + Nessun formato valido trovato Please select a valid input file - + Si prega di selezionare un file di input valido No valid conversions found - + Nessune conversioni valide trovate Cannot convert save games between platforms - + Impossibile convertire salvataggi tra piattaforme @@ -3892,7 +3892,7 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd. Select directory - + Seleziona directory @@ -3991,96 +3991,116 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd. QGBA::Window - + Game Boy Advance ROMs (%1) ROM per Game Boy Advance (%1) - + Game Boy ROMs (%1) ROM per Game Boy (%1) - + All ROMs (%1) Tutte le ROM (%1) - + %1 Video Logs (*.mvl) %1 log Video (*.mvl) - + Archives (%1) Archivi (%1) - - - + + + Select ROM Seleziona ROM - - + + Select save Seleziona salvataggio - + Select patch Seleziona patch - + Patches (*.ips *.ups *.bps) Patches (*.ips *.ups *.bps) - + Select e-Reader dotcode Selezione e-Reader dotcode - + e-Reader card (*.raw *.bin *.bmp) e-Reader card (*.raw *.bin *.bmp) - + + Select e-Reader card images + Seleziona immagini carte e-Reader + + + + Image file (*.png *.jpg *.jpeg) + File immagine (*.png *.jpg *.jpeg) + + + + Conversion finished + Conversione terminata + + + + %1 of %2 e-Reader cards converted successfully. + %1 di %2 carte e-Reader convertite con successo. + + + Select image Seleziona immagine - + Image file (*.png *.gif *.jpg *.jpeg);;All files (*) File immagine (*.png *.gif *.jpg *.jpeg);;Tutti i file (*) - - + + GameShark saves (*.sps *.xps) Salvataggi GameShark (*.sps *.xps) - + Select video log Seleziona log video - + Video logs (*.mvl) Log video (*.mvl) - + Crash Errore fatale - + The game has crashed with the following error: %1 @@ -4089,634 +4109,639 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd. %1 - + Unimplemented BIOS call BIOS non implementato - + This game uses a BIOS call that is not implemented. Please use the official BIOS for best experience. Questo gioco utilizza una chiamata BIOS non implementata. Utilizza il BIOS ufficiale per una migliore esperienza. - + Failed to create an appropriate display device, falling back to software display. Games may run slowly, especially with larger windows. Impossibile creare un dispositivo di visualizzazione appropriato, tornando alla visualizzazione software. I giochi possono funzionare lentamente, specialmente con finestre più grandi. - + Really make portable? Vuoi davvero rendere portatile l'applicazione? - + This will make the emulator load its configuration from the same directory as the executable. Do you want to continue? In questo modo l'emulatore carica la propria configurazione dalla stessa cartella dell'eseguibile. Vuoi continuare? - + Restart needed È necessario riavviare - + Some changes will not take effect until the emulator is restarted. Alcune modifiche non avranno effetto finché l'emulatore non verrà riavviato. - + - Player %1 of %2 - Giocatore %1 di %2 - + %1 - %2 %1 - %2 - + %1 - %2 - %3 %1 - %2 - %3 - + %1 - %2 (%3 fps) - %4 %1 - %2 (%3 fps) - %4 - + &File File - + Load &ROM... Carica ROM... - + Load ROM in archive... Carica la ROM in archivio... - + Load &patch... Carica patch... - + Boot BIOS Avvia BIOS - + Replace ROM... Sostituisci la ROM... - + Scan e-Reader dotcodes... Scansiona e-Reader dotcode... - + + Convert e-Reader card image to raw... + Converti immagini carte e-Reader in raw... + + + ROM &info... Informazioni ROM... - + Recent Recente - + Make portable Rendi portatile - + &Load state Carica stato - + &Save state Salva stato - + Quick load Caricamento rapido - + Quick save Salvataggio rapido - + Load recent Carica recente - + Save recent Salva recente - + Undo load state Annulla il caricamento dello stato - + Undo save state Annulla salvataggio stato - - + + State &%1 Stato %1 - + Load camera image... Carica immagine camera... - + Convert save game... - + Converti salvataggi... - + New multiplayer window Nuova finestra multigiocatore - + Connect to Dolphin... - + Connessione a Dolphin... - + Report bug... Segnala bug... - + E&xit Esci (&X) - + &Emulation Emulazione - + &Reset Reset - + Sh&utdown Spegni (&U) - + Yank game pak Yank game pak - + &Pause Pausa - + &Next frame Salta il prossimo frame (&N) - + Fast forward (held) Avanzamento rapido (tieni premuto) - + &Fast forward Avanzamento rapido (&F) - + Fast forward speed Velocità di avanzamento rapido - + Unbounded Illimitata - + %0x %0x - + Rewind (held) Riavvolgimento (tieni premuto) - + Re&wind Riavvolgimento (&W) - + Step backwards Torna indietro - + Sync to &video Sincronizza con il video - + Sync to &audio Sincronizza con l'audio - + Solar sensor Sensore solare - + Increase solar level Aumenta il livello solare - + Decrease solar level Riduce il livello solare - + Brightest solar level Livello solare brillante - + Darkest solar level Livello solare più scuro - + Brightness %1 Luminosità %1 - + Audio/&Video Audio/Video - + Frame size Dimensioni Frame - + Toggle fullscreen Abilita Schermo Intero - + Lock aspect ratio Blocca rapporti aspetto - + Frame&skip Salto frame - + Mute Muto - + FPS target FPS finali - + Take &screenshot Acquisisci screenshot - + F12 F12 - + Record GIF/WebP/APNG... Registra GIF / WebP / APNG ... - + Video layers Layers video - + Audio channels Canali audio - + &Tools Strumenti - + View &logs... Visualizza (&Logs) &registri... - + Game &overrides... Valore specifico per il gioco... - + &Cheats... Trucchi... - + Open debugger console... Apri debugger console... - + Start &GDB server... Avvia server GDB... - + Settings... Impostazioni... - + Select folder Seleziona cartella - + Couldn't Start Non è stato possibile avviare - + Could not start game. Non è stato possibile avviare il gioco. - + Add folder to library... Aggiungi cartella alla libreria... - + Load state file... Carica stato di salvataggio... - + Save state file... Salva stato di salvataggio... - + Import GameShark Save... Importa Salvataggio GameShark... - + Export GameShark Save... Esporta Salvataggio GameShark... - + About... Informazioni… - + Force integer scaling Forza l'integer scaling - + Bilinear filtering Filtro bilineare - + Game Boy Printer... Stampante Game Boy... - + Save games (%1) - + Salvataggi (%1) - + Select save game - - - - - mGBA save state files (%1) - + Seleziona salvataggio - + mGBA save state files (%1) + file di stati di salvataggio mGBA (%1) + + + + Select save state - + Seleziona stato di salvataggio - + Load alternate save game... - + Carica stato di salvataggio alternativo... - + Load temporary save game... - + Carica salvataggio temporaneo... - + BattleChip Gate... BattleChip Gate... - + %1× %1x - + Interframe blending Interframe blending - + Native (59.7275) Nativo (59.7) - + Record A/V... Registra A/V... - + Adjust layer placement... Regola posizionamento layer... - + Game Pak sensors... Sensori Game Pak... - + View &palette... Mostra palette... - + View &sprites... Mostra sprites... - + View &tiles... Mostra tiles... - + View &map... Mostra mappa... - + &Frame inspector... &Frame inspector... - + View memory... Mostra memoria... - + Search memory... Ricerca memoria... - + View &I/O registers... Mostra registri I/O... - + Record debug video log... Registra debug video log... - + Stop debug video log Ferma debug video log - + Exit fullscreen Esci da Schermo Intero - + GameShark Button (held) Pulsante GameShark (tieni premuto) - + Autofire Pulsanti Autofire - + Autofire A Autofire A - + Autofire B Autofire B - + Autofire L Autofire L - + Autofire R Autofire R - + Autofire Start Autofire Start - + Autofire Select Autofire Select - + Autofire Up Autofire Su - + Autofire Right AAutofire Destra - + Autofire Down Autofire Giù - + Autofire Left Autofire Sinistra - + Clear Pulisci @@ -4726,17 +4751,17 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd. %1 byte - + %1 byte %1 kiB - + %1 kiB %1 MiB - + %1 MiB @@ -4878,12 +4903,12 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd. Convert/Extract Save Game - + Converti/Estrai Salvataggio Input file - + File input @@ -4894,22 +4919,22 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd. Output file - + File output %1 %2 save game - + %1 %2 salvataggio little endian - + little endian big endian - + big endian @@ -4919,62 +4944,62 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd. %1 flash - + %1 flash %1 EEPROM - + %1 EEPROM %1 SRAM + RTC - + %1 SRAM + OTR %1 SRAM - + %1 SRAM packed MBC2 - + MBC2 compresso unpacked MBC2 - + MBC2 non compresso MBC6 flash - + MBC6 flash MBC6 combined SRAM + flash - + MBC6 combinato con la SRAM + flash MBC6 SRAM - + SRAM MBC6 TAMA5 - + TAMA5 %1 (%2) - + %1 (%2) %1 save state with embedded %2 save game - + %1 stato di salvataggio incorporato con il salvataggio %2 @@ -5271,18 +5296,18 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd. Save state extra data: - + Data extra stato di salvataggio: Save game - + Salvataggio Load state extra data: - + Data extra carica stato di salvataggio: @@ -5937,7 +5962,7 @@ Game Boy Advance è un marchio registrato di Nintendo Co., Ltd. CRF - + CRF diff --git a/src/platform/qt/ts/mgba-en.ts b/src/platform/qt/ts/mgba-en.ts index e70d907a2..7221ddc1f 100644 --- a/src/platform/qt/ts/mgba-en.ts +++ b/src/platform/qt/ts/mgba-en.ts @@ -3756,12 +3756,12 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd. QGBA::ReportView - + Bug report archive - + ZIP archive (*.zip) @@ -3990,730 +3990,755 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd. QGBA::Window - + Game Boy Advance ROMs (%1) - + Game Boy ROMs (%1) - + All ROMs (%1) - + %1 Video Logs (*.mvl) - + Archives (%1) - - - + + + Select ROM - + Select folder - - + + Select save - + Select patch - + Patches (*.ips *.ups *.bps) - + Select e-Reader dotcode - + e-Reader card (*.raw *.bin *.bmp) - + Select image - + Image file (*.png *.gif *.jpg *.jpeg);;All files (*) - - + + GameShark saves (*.sps *.xps) - + Select video log - + Video logs (*.mvl) - + Crash - + The game has crashed with the following error: %1 - + Couldn't Start - + Could not start game. - + Unimplemented BIOS call - + This game uses a BIOS call that is not implemented. Please use the official BIOS for best experience. - + Failed to create an appropriate display device, falling back to software display. Games may run slowly, especially with larger windows. - + Really make portable? - + This will make the emulator load its configuration from the same directory as the executable. Do you want to continue? - + Restart needed - + Some changes will not take effect until the emulator is restarted. - + - Player %1 of %2 - + %1 - %2 - + %1 - %2 - %3 - + %1 - %2 (%3 fps) - %4 - + &File - + Load &ROM... - + Load ROM in archive... - + Add folder to library... - + Save games (%1) - + Select save game - + mGBA save state files (%1) - - + + Select save state - + + Select e-Reader card images + + + + + Image file (*.png *.jpg *.jpeg) + + + + + Conversion finished + + + + + %1 of %2 e-Reader cards converted successfully. + + + + Load alternate save game... - + Load temporary save game... - + Load &patch... - + Boot BIOS - + Replace ROM... - + Scan e-Reader dotcodes... - + + Convert e-Reader card image to raw... + + + + ROM &info... - + Recent - + Make portable - + &Load state - + Load state file... - + &Save state - + Save state file... - + Quick load - + Quick save - + Load recent - + Save recent - + Undo load state - + Undo save state - - + + State &%1 - + Load camera image... - + Convert save game... - + Import GameShark Save... - + Export GameShark Save... - + New multiplayer window - + Connect to Dolphin... - + Report bug... - + About... - + E&xit - + &Emulation - + &Reset - + Sh&utdown - + Yank game pak - + &Pause - + &Next frame - + Fast forward (held) - + &Fast forward - + Fast forward speed - + Unbounded - + %0x - + Rewind (held) - + Re&wind - + Step backwards - + Sync to &video - + Sync to &audio - + Solar sensor - + Increase solar level - + Decrease solar level - + Brightest solar level - + Darkest solar level - + Brightness %1 - + Game Boy Printer... - + BattleChip Gate... - + Audio/&Video - + Frame size - + %1× - + Toggle fullscreen - + Lock aspect ratio - + Force integer scaling - + Interframe blending - + Bilinear filtering - + Frame&skip - + Mute - + FPS target - + Native (59.7275) - + Take &screenshot - + F12 - + Record A/V... - + Record GIF/WebP/APNG... - + Video layers - + Audio channels - + Adjust layer placement... - + &Tools - + View &logs... - + Game &overrides... - + Game Pak sensors... - + &Cheats... - + Settings... - + Open debugger console... - + Start &GDB server... - + View &palette... - + View &sprites... - + View &tiles... - + View &map... - + &Frame inspector... - + View memory... - + Search memory... - + View &I/O registers... - + Record debug video log... - + Stop debug video log - + Exit fullscreen - + GameShark Button (held) - + Autofire - + Autofire A - + Autofire B - + Autofire L - + Autofire R - + Autofire Start - + Autofire Select - + Autofire Up - + Autofire Right - + Autofire Down - + Autofire Left - + Clear diff --git a/src/platform/qt/ts/mgba-fi.ts b/src/platform/qt/ts/mgba-fi.ts new file mode 100644 index 000000000..c473b0657 --- /dev/null +++ b/src/platform/qt/ts/mgba-fi.ts @@ -0,0 +1,5956 @@ + + + + + AboutScreen + + + About + Tietoa + + + + <a href="http://mgba.io/">Website</a> • <a href="https://forums.mgba.io/">Forums / Support</a> • <a href="https://patreon.com/mgba">Donate</a> • <a href="https://github.com/mgba-emu/mgba/tree/{gitBranch}">Source</a> + + + + + Branch: <tt>{gitBranch}</tt><br/>Revision: <tt>{gitCommit}</tt> + Oksa: <tt>{gitBranch}</tt><br/>Reviisio: <tt>{gitCommit}</tt> + + + + {projectName} would like to thank the following patrons from Patreon: + {projectName} haluaisi kiittää seuraavia patroneja Patreonista: + + + + © 2013 – {year} Jeffrey Pfau, licensed under the Mozilla Public License, version 2.0 +Game Boy Advance is a registered trademark of Nintendo Co., Ltd. + © 2013 – {year} Jeffrey Pfau, lisenssoitu Mozilla Public License:sen alle, versio 2.0 +Game Boy Advance on Nintendo Co., Ltd rekisteröimä tuotemerkki. + + + + {projectName} is an open-source Game Boy Advance emulator + {projectName} on avoimenlähdekoodin Game Boy Advance emulaattori + + + + ArchiveInspector + + + Open in archive... + Avaa arkistossa... + + + + Loading... + Ladataan... + + + + AssetTile + + + Tile # + Tiili # + + + + Palette # + Paletti # + + + + Address + Osoite + + + + Red + Punainen + + + + Green + Vihreä + + + + Blue + Sininen + + + + BattleChipView + + + BattleChip Gate + BattleChip Gate + + + + Chip name + Siru nimi + + + + Insert + Laittaa + + + + Save + Tallentaa + + + + Load + Ladata + + + + Add + Lisätä + + + + Remove + Poista + + + + Gate type + + + + + Ba&ttleChip Gate + + + + + Progress &Gate + + + + + Beast &Link Gate + + + + + Inserted + + + + + Chip ID + + + + + Update Chip data + + + + + Show advanced + + + + + CheatsView + + + Cheats + Huijaukset + + + + Remove + Poista + + + + Save + Tallentaa + + + + Load + Ladata + + + + Add New Set + Lisätä Uusi Setti + + + + Add + Lisätä + + + + Enter codes here... + Laita koodit tähän... + + + + DebuggerConsole + + + Debugger + virheiden jäljittäjä + + + + Enter command (try `help` for more info) + Syötä komento (yritä `help` niin saat lisää tietoa) + + + + Break + Rikkoa + + + + DolphinConnector + + + Connect to Dolphin + Liitä Dolphiniin + + + + Local computer + Lähi tietokone + + + + IP address + IP-Osoite + + + + Connect + Liittyä + + + + Disconnect + + + + + Close + + + + + Reset on connect + + + + + FrameView + + + Inspect frame + + + + + Magnification + + + + + Freeze frame + + + + + Backdrop color + + + + + Disable scanline effects + + + + + Export + + + + + Reset + + + + + GIFView + + + Record GIF/WebP/APNG + + + + + Loop + + + + + Start + + + + + Stop + + + + + Select File + + + + + APNG + + + + + GIF + + + + + WebP + + + + + Frameskip + + + + + IOViewer + + + I/O Viewer + + + + + 0x0000 + + + + + B + + + + + LibraryTree + + + Name + + + + + Location + + + + + Platform + + + + + Size + + + + + CRC32 + + + + + LoadSaveState + + + + %1 State + + + + + + + + + + + + + No Save + + + + + 5 + + + + + 6 + + + + + 8 + + + + + 4 + + + + + 1 + + + + + 3 + + + + + 7 + + + + + 9 + + + + + 2 + + + + + Cancel + + + + + LogView + + + Logs + + + + + Enabled Levels + + + + + Debug + + + + + Stub + + + + + Info + + + + + Warning + + + + + Error + + + + + Fatal + + + + + Game Error + + + + + Advanced settings + + + + + Clear + + + + + Max Lines + + + + + MapView + + + Maps + + + + + Magnification + + + + + Export + + + + + Copy + + + + + MemoryDump + + + Save Memory Range + + + + + Start Address: + + + + + Byte Count: + + + + + Dump across banks + + + + + MemorySearch + + + Memory Search + + + + + Address + + + + + Current Value + + + + + + Type + + + + + Value + + + + + Numeric + + + + + Text + + + + + Width + + + + + + Guess + + + + + 1 Byte (8-bit) + + + + + 2 Bytes (16-bit) + + + + + 4 Bytes (32-bit) + + + + + Number type + + + + + Decimal + + + + + Hexadecimal + + + + + Search type + + + + + Equal to value + + + + + Greater than value + + + + + Less than value + + + + + Unknown/changed + + + + + Changed by value + + + + + Unchanged + + + + + Increased + + + + + Decreased + + + + + Search ROM + + + + + New Search + + + + + Search Within + + + + + Open in Memory Viewer + + + + + Refresh + + + + + MemoryView + + + Memory + + + + + Inspect Address: + + + + + Set Alignment: + + + + + &1 Byte + + + + + &2 Bytes + + + + + &4 Bytes + + + + + Unsigned Integer: + + + + + Signed Integer: + + + + + String: + + + + + Load TBL + + + + + Copy Selection + + + + + Paste + + + + + Save Selection + + + + + Save Range + + + + + Load + + + + + ObjView + + + Sprites + + + + + Address + + + + + Copy + + + + + Magnification + + + + + Geometry + + + + + Position + + + + + , + + + + + Dimensions + + + + + × + + + + + Matrix + + + + + Export + + + + + Attributes + + + + + Transform + + + + + Off + + + + + Palette + + + + + Double Size + + + + + + + + Return, Ctrl+R + + + + + Flipped + + + + + H + Short for horizontal + + + + + V + Short for vertical + + + + + Mode + + + + + Normal + + + + + Mosaic + + + + + Enabled + + + + + Priority + + + + + Tile + + + + + OverrideView + + + Game Overrides + + + + + Game Boy Advance + + + + + + + + Autodetect + + + + + Realtime clock + + + + + Gyroscope + + + + + Tilt + + + + + Light sensor + + + + + Rumble + + + + + Save type + + + + + None + + + + + SRAM + + + + + Flash 512kb + + + + + Flash 1Mb + + + + + EEPROM + + + + + Idle loop + + + + + Game Boy Player features + + + + + VBA bug compatibility mode + + + + + Game Boy + + + + + Game Boy model + + + + + Memory bank controller + + + + + Background Colors + + + + + Sprite Colors 1 + + + + + Sprite Colors 2 + + + + + PaletteView + + + Palette + + + + + Background + + + + + Objects + + + + + Selection + + + + + Red + + + + + Green + + + + + Blue + + + + + 16-bit value + + + + + Hex code + + + + + Palette index + + + + + Export BG + + + + + Export OBJ + + + + + PlacementControl + + + Adjust placement + + + + + All + + + + + Offset + + + + + X + + + + + Y + + + + + PrinterView + + + Game Boy Printer + + + + + Hurry up! + + + + + Tear off + + + + + Magnification + + + + + Copy + + + + + QGBA::AboutScreen + + + 2021 + + + + + QGBA::AssetTile + + + %0%1%2 + + + + + + + 0x%0 (%1) + + + + + QGBA::CheatsModel + + + (untitled) + + + + + Failed to open cheats file: %1 + + + + + QGBA::CheatsView + + + + Add GameShark + + + + + Add Pro Action Replay + + + + + Add CodeBreaker + + + + + Add GameGenie + + + + + + Select cheats file + + + + + QGBA::CoreController + + + Failed to open save file: %1 + + + + + Failed to open game file: %1 + + + + + Can't yank pack in unexpected platform! + + + + + Failed to open snapshot file for reading: %1 + + + + + Failed to open snapshot file for writing: %1 + + + + + QGBA::CoreManager + + + Failed to open game file: %1 + + + + + Could not load game. Are you sure it's in the correct format? + + + + + Failed to open save file. Is the save directory writable? + + + + + QGBA::FrameView + + + Export frame + + + + + Portable Network Graphics (*.png) + + + + + None + + + + + Background + + + + + Window + + + + + Objwin + + + + + Sprite + + + + + Backdrop + + + + + Frame + + + + + %1 %2 + + + + + QGBA::GBAApp + + + Enable Discord Rich Presence + + + + + QGBA::GBAKeyEditor + + + Clear Button + + + + + Clear Analog + + + + + Refresh + + + + + Set all + + + + + QGBA::GDBWindow + + + Server settings + + + + + Local port + + + + + Bind address + + + + + Break + + + + + Stop + + + + + Start + + + + + Crash + + + + + Could not start GDB server + + + + + QGBA::GIFView + + + Failed to open output file: %1 + + + + + Select output file + + + + + Graphics Interchange Format (*.gif);;WebP ( *.webp);;Animated Portable Network Graphics (*.png *.apng) + + + + + QGBA::IOViewer + + + Background mode + + + + + Mode 0: 4 tile layers + + + + + Mode 1: 2 tile layers + 1 rotated/scaled tile layer + + + + + Mode 2: 2 rotated/scaled tile layers + + + + + Mode 3: Full 15-bit bitmap + + + + + Mode 4: Full 8-bit bitmap + + + + + Mode 5: Small 15-bit bitmap + + + + + CGB Mode + + + + + Frame select + + + + + Unlocked HBlank + + + + + Linear OBJ tile mapping + + + + + Force blank screen + + + + + Enable background 0 + + + + + Enable background 1 + + + + + Enable background 2 + + + + + Enable background 3 + + + + + Enable OBJ + + + + + Enable Window 0 + + + + + Enable Window 1 + + + + + Enable OBJ Window + + + + + Swap green components + + + + + Currently in VBlank + + + + + Currently in HBlank + + + + + Currently in VCounter + + + + + Enable VBlank IRQ generation + + + + + Enable HBlank IRQ generation + + + + + Enable VCounter IRQ generation + + + + + VCounter scanline + + + + + Current scanline + + + + + + + + Priority + + + + + + + + Tile data base (* 16kB) + + + + + + + + Enable mosaic + + + + + + + + Enable 256-color + + + + + + + + Tile map base (* 2kB) + + + + + + + + Background dimensions + + + + + + Overflow wraps + + + + + + + + + + Horizontal offset + + + + + + + + + + Vertical offset + + + + + + + + + + + + + + + + Fractional part + + + + + + + + + + + + Integer part + + + + + + + + Integer part (low) + + + + + + + + Integer part (high) + + + + + + End x + + + + + + Start x + + + + + + End y + + + + + + Start y + + + + + Window 0 enable BG 0 + + + + + Window 0 enable BG 1 + + + + + Window 0 enable BG 2 + + + + + Window 0 enable BG 3 + + + + + Window 0 enable OBJ + + + + + Window 0 enable blend + + + + + Window 1 enable BG 0 + + + + + Window 1 enable BG 1 + + + + + Window 1 enable BG 2 + + + + + Window 1 enable BG 3 + + + + + Window 1 enable OBJ + + + + + Window 1 enable blend + + + + + Outside window enable BG 0 + + + + + Outside window enable BG 1 + + + + + Outside window enable BG 2 + + + + + Outside window enable BG 3 + + + + + Outside window enable OBJ + + + + + Outside window enable blend + + + + + OBJ window enable BG 0 + + + + + OBJ window enable BG 1 + + + + + OBJ window enable BG 2 + + + + + OBJ window enable BG 3 + + + + + OBJ window enable OBJ + + + + + OBJ window enable blend + + + + + Background mosaic size vertical + + + + + Background mosaic size horizontal + + + + + Object mosaic size vertical + + + + + Object mosaic size horizontal + + + + + BG 0 target 1 + + + + + BG 1 target 1 + + + + + BG 2 target 1 + + + + + BG 3 target 1 + + + + + OBJ target 1 + + + + + Backdrop target 1 + + + + + Blend mode + + + + + Disabled + + + + + Additive blending + + + + + Brighten + + + + + Darken + + + + + BG 0 target 2 + + + + + BG 1 target 2 + + + + + BG 2 target 2 + + + + + BG 3 target 2 + + + + + OBJ target 2 + + + + + Backdrop target 2 + + + + + Blend A (target 1) + + + + + Blend B (target 2) + + + + + Blend Y + + + + + + Sweep shifts + + + + + + Sweep subtract + + + + + + Sweep time (in 1/128s) + + + + + + + + + + + + Sound length + + + + + + + + Duty cycle + + + + + + + + + + Envelope step time + + + + + + + + + + Envelope increase + + + + + + + + + + Initial volume + + + + + + + Sound frequency + + + + + + + + + + + + Timed + + + + + + + + + + + + Reset + + + + + Double-size wave table + + + + + Active wave table + + + + + + Enable channel 3 + + + + + + Volume + + + + + + 0% + + + + + + + 100% + + + + + + + 50% + + + + + + + 25% + + + + + + + + 75% + + + + + + Clock divider + + + + + + Register stages + + + + + + 15 + + + + + + 7 + + + + + + Shifter frequency + + + + + PSG volume right + + + + + PSG volume left + + + + + + Enable channel 1 right + + + + + + Enable channel 2 right + + + + + + Enable channel 3 right + + + + + + Enable channel 4 right + + + + + + Enable channel 1 left + + + + + + Enable channel 2 left + + + + + + Enable channel 3 left + + + + + + Enable channel 4 left + + + + + PSG master volume + + + + + Loud channel A + + + + + Loud channel B + + + + + Enable channel A right + + + + + Enable channel A left + + + + + Channel A timer + + + + + + 0 + + + + + + + + + + + + + 1 + + + + + Channel A reset + + + + + Enable channel B right + + + + + Enable channel B left + + + + + Channel B timer + + + + + Channel B reset + + + + + + Active channel 1 + + + + + + Active channel 2 + + + + + + Active channel 3 + + + + + + Active channel 4 + + + + + + Enable audio + + + + + Bias + + + + + Resolution + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sample + + + + + + + + + + + + Address (low) + + + + + + + + + + + + Address (high) + + + + + + + Sound frequency (low) + + + + + + + Sound frequency (high) + + + + + Source (high) + + + + + Source (low) + + + + + Destination (high) + + + + + Destination (low) + + + + + + Green (low) + + + + + + Green (high) + + + + + + + + Word count + + + + + + + + Destination offset + + + + + + + + + + + + Increment + + + + + + + + + + + + Decrement + + + + + + + + + + + + Fixed + + + + + + + + Increment and reload + + + + + + + + Source offset + + + + + + + + Repeat + + + + + + + + 32-bit + + + + + + + + Start timing + + + + + + + + + Immediate + + + + + + + + + + + + VBlank + + + + + + + + + + + HBlank + + + + + + + + + + + + + IRQ + + + + + + + + + + + + + + + Enable + + + + + + + Audio FIFO + + + + + Video Capture + + + + + DRQ + + + + + + + + + + + + Value + + + + + + + + Scale + + + + + + + + + 1/64 + + + + + + + + + 1/256 + + + + + + + + + 1/1024 + + + + + + + Cascade + + + + + + A + + + + + + B + + + + + + Select + + + + + + Start + + + + + + Right + + + + + + Left + + + + + + Up + + + + + + Down + + + + + + R + + + + + + L + + + + + Condition + + + + + SC + + + + + SD + + + + + SI + + + + + SO + + + + + + VCounter + + + + + + Timer 0 + + + + + + Timer 1 + + + + + + Timer 2 + + + + + + Timer 3 + + + + + + SIO + + + + + + DMA 0 + + + + + + DMA 1 + + + + + + DMA 2 + + + + + + DMA 3 + + + + + + Keypad + + + + + + Gamepak + + + + + SRAM wait + + + + + + + + + 4 + + + + + + + + 3 + + + + + + + + + 2 + + + + + + + + + 8 + + + + + Cart 0 non-sequential + + + + + Cart 0 sequential + + + + + Cart 1 non-sequential + + + + + Cart 1 sequential + + + + + Cart 2 non-sequential + + + + + Cart 2 sequential + + + + + PHI terminal + + + + + + Disable + + + + + 4.19MHz + + + + + 8.38MHz + + + + + 16.78MHz + + + + + Gamepak prefetch + + + + + Enable IRQs + + + + + Right/A + + + + + Left/B + + + + + Up/Select + + + + + Down/Start + + + + + Active D-pad + + + + + Active face buttons + + + + + Internal clock + + + + + 32× clocking (CGB only) + + + + + Transfer active + + + + + Divider + + + + + 1/16 + + + + + + LCD STAT + + + + + + Timer + + + + + + Serial + + + + + + Joypad + + + + + Volume right + + + + + Output right + + + + + Volume left + + + + + Output left + + + + + Background enable/priority + + + + + Enable sprites + + + + + Double-height sprites + + + + + Background tile map + + + + + + 0x9800 – 0x9BFF + + + + + + 0x9C00 – 0x9FFF + + + + + Background tile data + + + + + 0x8800 – 0x87FF + + + + + 0x8000 – 0x8FFF + + + + + Enable window + + + + + Window tile map + + + + + Enable LCD + + + + + Mode + + + + + 0: HBlank + + + + + 1: VBlank + + + + + 2: OAM scan + + + + + 3: HDraw + + + + + In LYC + + + + + Enable HBlank (mode 0) IRQ + + + + + Enable VBlank (mode 1) IRQ + + + + + Enable OAM (mode 2) IRQ + + + + + Enable LYC IRQ + + + + + Current Y coordinate + + + + + Comparison Y coordinate + + + + + Start upper byte + + + + + + + Color 0 shade + + + + + + + Color 1 shade + + + + + + + Color 2 shade + + + + + + + Color 3 shade + + + + + Prepare to switch speed + + + + + Double speed + + + + + VRAM bank + + + + + Length + + + + + Timing + + + + + Write bit + + + + + Read bit + + + + + + Unknown + + + + + + Current index + + + + + + Auto-increment + + + + + + Red + + + + + + Blue + + + + + Sprite ordering + + + + + OAM order + + + + + x coordinate sorting + + + + + WRAM bank + + + + + QGBA::KeyEditor + + + + --- + + + + + Super (L) + + + + + Super (R) + + + + + Menu + + + + + QGBA::LoadSaveState + + + Load State + + + + + Save State + + + + + Empty + + + + + Corrupted + + + + + Slot %1 + + + + + QGBA::LogConfigModel + + + + Default + + + + + Fatal + + + + + Error + + + + + Warning + + + + + Info + + + + + Debug + + + + + Stub + + + + + Game Error + + + + + QGBA::LogController + + + [%1] %2: %3 + + + + + An error occurred + + + + + DEBUG + + + + + STUB + + + + + INFO + + + + + WARN + + + + + ERROR + + + + + FATAL + + + + + GAME ERROR + + + + + QGBA::MapView + + + Priority + + + + + + Map base + + + + + + Tile base + + + + + Size + + + + + + Offset + + + + + Xform + + + + + Map Addr. + + + + + Mirror + + + + + None + + + + + Both + + + + + Horizontal + + + + + Vertical + + + + + + + N/A + + + + + Export map + + + + + Portable Network Graphics (*.png) + + + + + QGBA::MemoryDump + + + Save memory region + + + + + Failed to open output file: %1 + + + + + QGBA::MemoryModel + + + Copy selection + + + + + Save selection + + + + + Paste + + + + + Load + + + + + All + + + + + Load TBL + + + + + Save selected memory + + + + + Failed to open output file: %1 + + + + + Load memory + + + + + Failed to open input file: %1 + + + + + TBL + + + + + ISO-8859-1 + + + + + QGBA::MemorySearch + + + (%0/%1×) + + + + + (⅟%0×) + + + + + (%0×) + + + + + %1 byte%2 + + + + + QGBA::ObjView + + + + 0x%0 + + + + + Off + + + + + + + + + + + + --- + + + + + Normal + + + + + Trans + + + + + OBJWIN + + + + + Invalid + + + + + + N/A + + + + + Export sprite + + + + + Portable Network Graphics (*.png) + + + + + QGBA::OverrideView + + + Official MBCs + + + + + Licensed MBCs + + + + + Unlicensed MBCs + + + + + QGBA::PaletteView + + + #%0 + + + + + 0x%0 + + + + + + + + 0x%0 (%1) + + + + + Export palette + + + + + Windows PAL (*.pal);;Adobe Color Table (*.act) + + + + + Failed to open output palette file: %1 + + + + + QGBA::ROMInfo + + + + + + + (unknown) + + + + + + bytes + + + + + (no database present) + + + + + QGBA::ReportView + + + Bug report archive + + + + + ZIP archive (*.zip) + + + + + QGBA::SaveConverter + + + Save games and save states (%1) + + + + + Select save game or save state + + + + + Save games (%1) + + + + + Select save game + + + + + Conversion failed + + + + + Failed to convert the save game. This is probably a bug. + + + + + No file selected + + + + + Could not open file + + + + + No valid formats found + + + + + Please select a valid input file + + + + + No valid conversions found + + + + + Cannot convert save games between platforms + + + + + QGBA::SettingsView + + + + Qt Multimedia + + + + + SDL + + + + + Software (Qt) + + + + + OpenGL + + + + + OpenGL (force version 1.x) + + + + + None (Still Image) + + + + + Keyboard + + + + + Controllers + + + + + Shortcuts + + + + + + Shaders + + + + + Select BIOS + + + + + Select directory + + + + + (%1×%2) + + + + + QGBA::ShaderSelector + + + No shader active + + + + + Load shader + + + + + No shader loaded + + + + + by %1 + + + + + Preprocessing + + + + + Pass %1 + + + + + QGBA::ShortcutModel + + + Action + + + + + Keyboard + + + + + Gamepad + + + + + QGBA::TileView + + + Export tiles + + + + + + Portable Network Graphics (*.png) + + + + + Export tile + + + + + QGBA::VideoView + + + Failed to open output video file: %1 + + + + + Native (%0x%1) + + + + + Select output file + + + + + QGBA::Window + + + Game Boy Advance ROMs (%1) + + + + + Game Boy ROMs (%1) + + + + + All ROMs (%1) + + + + + %1 Video Logs (*.mvl) + + + + + Archives (%1) + + + + + + + Select ROM + + + + + Select folder + + + + + + Select save + + + + + Select patch + + + + + Patches (*.ips *.ups *.bps) + + + + + Select e-Reader dotcode + + + + + e-Reader card (*.raw *.bin *.bmp) + + + + + Select image + + + + + Image file (*.png *.gif *.jpg *.jpeg);;All files (*) + + + + + + GameShark saves (*.sps *.xps) + + + + + Select video log + + + + + Video logs (*.mvl) + + + + + Crash + + + + + The game has crashed with the following error: + +%1 + + + + + Couldn't Start + + + + + Could not start game. + + + + + Unimplemented BIOS call + + + + + This game uses a BIOS call that is not implemented. Please use the official BIOS for best experience. + + + + + Failed to create an appropriate display device, falling back to software display. Games may run slowly, especially with larger windows. + + + + + Really make portable? + + + + + This will make the emulator load its configuration from the same directory as the executable. Do you want to continue? + + + + + Restart needed + + + + + Some changes will not take effect until the emulator is restarted. + + + + + - Player %1 of %2 + + + + + %1 - %2 + + + + + %1 - %2 - %3 + + + + + %1 - %2 (%3 fps) - %4 + + + + + &File + + + + + Load &ROM... + + + + + Load ROM in archive... + + + + + Add folder to library... + + + + + Save games (%1) + + + + + Select save game + + + + + mGBA save state files (%1) + + + + + + Select save state + + + + + Load alternate save game... + + + + + Load temporary save game... + + + + + Load &patch... + + + + + Boot BIOS + + + + + Replace ROM... + + + + + Scan e-Reader dotcodes... + + + + + ROM &info... + + + + + Recent + + + + + Make portable + + + + + &Load state + + + + + Load state file... + + + + + &Save state + + + + + Save state file... + + + + + Quick load + + + + + Quick save + + + + + Load recent + + + + + Save recent + + + + + Undo load state + + + + + Undo save state + + + + + + State &%1 + + + + + Load camera image... + + + + + Convert save game... + + + + + Import GameShark Save... + + + + + Export GameShark Save... + + + + + New multiplayer window + + + + + Connect to Dolphin... + + + + + Report bug... + + + + + About... + + + + + E&xit + + + + + &Emulation + + + + + &Reset + + + + + Sh&utdown + + + + + Yank game pak + + + + + &Pause + + + + + &Next frame + + + + + Fast forward (held) + + + + + &Fast forward + + + + + Fast forward speed + + + + + Unbounded + + + + + %0x + + + + + Rewind (held) + + + + + Re&wind + + + + + Step backwards + + + + + Sync to &video + + + + + Sync to &audio + + + + + Solar sensor + + + + + Increase solar level + + + + + Decrease solar level + + + + + Brightest solar level + + + + + Darkest solar level + + + + + Brightness %1 + + + + + Game Boy Printer... + + + + + BattleChip Gate... + + + + + Audio/&Video + + + + + Frame size + + + + + %1× + + + + + Toggle fullscreen + + + + + Lock aspect ratio + + + + + Force integer scaling + + + + + Interframe blending + + + + + Bilinear filtering + + + + + Frame&skip + + + + + Mute + + + + + FPS target + + + + + Native (59.7275) + + + + + Take &screenshot + + + + + F12 + + + + + Record A/V... + + + + + Record GIF/WebP/APNG... + + + + + Video layers + + + + + Audio channels + + + + + Adjust layer placement... + + + + + &Tools + + + + + View &logs... + + + + + Game &overrides... + + + + + Game Pak sensors... + + + + + &Cheats... + + + + + Settings... + + + + + Open debugger console... + + + + + Start &GDB server... + + + + + View &palette... + + + + + View &sprites... + + + + + View &tiles... + + + + + View &map... + + + + + &Frame inspector... + + + + + View memory... + + + + + Search memory... + + + + + View &I/O registers... + + + + + Record debug video log... + + + + + Stop debug video log + + + + + Exit fullscreen + + + + + GameShark Button (held) + + + + + Autofire + + + + + Autofire A + + + + + Autofire B + + + + + Autofire L + + + + + Autofire R + + + + + Autofire Start + + + + + Autofire Select + + + + + Autofire Up + + + + + Autofire Right + + + + + Autofire Down + + + + + Autofire Left + + + + + Clear + + + + + QObject + + + %1 byte + + + + + %1 kiB + + + + + %1 MiB + + + + + GBA + + + + + GB + + + + + ? + + + + + QShortcut + + + Shift + + + + + Control + + + + + Alt + + + + + Meta + + + + + ROMInfo + + + ROM Info + + + + + Game name: + + + + + {NAME} + + + + + Internal name: + + + + + {TITLE} + + + + + Game ID: + + + + + {ID} + + + + + File size: + + + + + {SIZE} + + + + + CRC32: + + + + + {CRC} + + + + + ReportView + + + Generate Bug Report + + + + + <html><head/><body><p>To file a bug report, please first generate a report file to attach to the bug report you're about to file. It is recommended that you include the save files, as these often help with debugging issues. This will collect some information about the version of {projectName} you're running, your configuration, your computer, and the game you currently have open (if any). Once this collection is completed you can review all of the information gathered below and save it to a zip file. The collection will automatically attempt to redact any personal information, such as your username if it's in any of the paths gathered, but just in case you can edit it afterwards. After you have generated and saved it, please click the button below or go to <a href="https://mgba.io/i/"><span style=" text-decoration: underline; color:#2980b9;">mgba.io/i</span></a> to file the bug report on GitHub. Make sure to attach the report you generated!</p></body></html> + + + + + Generate report + + + + + Save + + + + + Open issue list in browser + + + + + Include save file + + + + + Create and include savestate + + + + + SaveConverter + + + Convert/Extract Save Game + + + + + Input file + + + + + + Browse + + + + + Output file + + + + + %1 %2 save game + + + + + little endian + + + + + big endian + + + + + SRAM + + + + + %1 flash + + + + + %1 EEPROM + + + + + %1 SRAM + RTC + + + + + %1 SRAM + + + + + packed MBC2 + + + + + unpacked MBC2 + + + + + MBC6 flash + + + + + MBC6 combined SRAM + flash + + + + + MBC6 SRAM + + + + + TAMA5 + + + + + %1 (%2) + + + + + %1 save state with embedded %2 save game + + + + + SensorView + + + Sensors + + + + + Realtime clock + + + + + Fixed time + + + + + System time + + + + + Start time at + + + + + Now + + + + + MM/dd/yy hh:mm:ss AP + + + + + Light sensor + + + + + Brightness + + + + + Tilt sensor + + + + + + Set Y + + + + + + Set X + + + + + Gyroscope + + + + + Sensitivity + + + + + SettingsView + + + Settings + + + + + Audio/Video + + + + + Interface + + + + + Emulation + + + + + Enhancements + + + + + BIOS + + + + + Paths + + + + + Logging + + + + + Game Boy + + + + + Audio driver: + + + + + Audio buffer: + + + + + + 1536 + + + + + 512 + + + + + 768 + + + + + 1024 + + + + + 2048 + + + + + 3072 + + + + + 4096 + + + + + samples + + + + + Sample rate: + + + + + + 44100 + + + + + 22050 + + + + + 32000 + + + + + 48000 + + + + + Hz + + + + + Volume: + + + + + + Mute + + + + + Fast forward volume: + + + + + Display driver: + + + + + Frameskip: + + + + + Skip every + + + + + + frames + + + + + FPS target: + + + + + frames per second + + + + + Sync: + + + + + Video + + + + + Audio + + + + + Lock aspect ratio + + + + + Force integer scaling + + + + + Bilinear filtering + + + + + Native (59.7275) + + + + + Interframe blending + + + + + Language + + + + + English + + + + + Library: + + + + + List view + + + + + Tree view + + + + + Show when no game open + + + + + Clear cache + + + + + Allow opposing input directions + + + + + Suspend screensaver + + + + + Pause when inactive + + + + + Pause when minimized + + + + + Dynamically update window title + + + + + Show filename instead of ROM name in title bar + + + + + Show OSD messages + + + + + Enable Discord Rich Presence + + + + + Automatically save state + + + + + Automatically load state + + + + + Automatically save cheats + + + + + Automatically load cheats + + + + + Show FPS in title bar + + + + + Fast forward speed: + + + + + + Unbounded + + + + + Fast forward (held) speed: + + + + + Autofire interval: + + + + + Enable rewind + + + + + Rewind history: + + + + + Idle loops: + + + + + Run all + + + + + Remove known + + + + + Detect and remove + + + + + Preload entire ROM into memory + + + + + Save state extra data: + + + + + + Save game + + + + + Load state extra data: + + + + + + Screenshot + + + + + + Cheat codes + + + + + Enable Game Boy Player features by default + + + + + Video renderer: + + + + + Software + + + + + OpenGL + + + + + OpenGL enhancements + + + + + High-resolution scale: + + + + + (240×160) + + + + + XQ GBA audio (experimental) + + + + + GB BIOS file: + + + + + + + + + + + + + Browse + + + + + Use BIOS file if found + + + + + Skip BIOS intro + + + + + GBA BIOS file: + + + + + GBC BIOS file: + + + + + SGB BIOS file: + + + + + Save games + + + + + + + + + Same directory as the ROM + + + + + Save states + + + + + Screenshots + + + + + Patches + + + + + Cheats + + + + + Log to file + + + + + Log to console + + + + + Select Log File + + + + + Game Boy-only model: + + + + + Super Game Boy model: + + + + + Game Boy Color-only model: + + + + + Game Boy/Game Boy Color model: + + + + + Default BG colors: + + + + + Default sprite colors 1: + + + + + Default sprite colors 2: + + + + + Use GBC colors in GB games + + + + + Super Game Boy borders + + + + + Camera driver: + + + + + Camera: + + + + + Super Game Boy/Game Boy Color model: + + + + + ShaderSelector + + + Shaders + + + + + Active Shader: + + + + + Name + + + + + Author + + + + + Description + + + + + Unload Shader + + + + + Load New Shader + + + + + ShortcutView + + + Edit Shortcuts + + + + + Keyboard + + + + + Gamepad + + + + + Clear + + + + + TileView + + + Tiles + + + + + Export Selected + + + + + Export All + + + + + 256 colors + + + + + Magnification + + + + + Tiles per row + + + + + Fit to window + + + + + Copy Selected + + + + + Copy All + + + + + VideoView + + + Record Video + + + + + Start + + + + + Stop + + + + + Select File + + + + + Presets + + + + + High &Quality + + + + + &YouTube + + + + + + WebM + + + + + + MP4 + + + + + &Lossless + + + + + 4K + + + + + &1080p + + + + + &720p + + + + + &480p + + + + + &Native + + + + + Format + + + + + MKV + + + + + AVI + + + + + HEVC + + + + + HEVC (NVENC) + + + + + VP8 + + + + + VP9 + + + + + FFV1 + + + + + + None + + + + + FLAC + + + + + Opus + + + + + Vorbis + + + + + MP3 + + + + + AAC + + + + + Uncompressed + + + + + Bitrate (kbps) + + + + + ABR + + + + + H.264 + + + + + H.264 (NVENC) + + + + + VBR + + + + + CRF + + + + + Dimensions + + + + + Lock aspect ratio + + + + + Show advanced + + + + diff --git a/src/platform/qt/ts/mgba-fr.ts b/src/platform/qt/ts/mgba-fr.ts index 3239e77fe..e1faad9a4 100644 --- a/src/platform/qt/ts/mgba-fr.ts +++ b/src/platform/qt/ts/mgba-fr.ts @@ -3776,12 +3776,12 @@ Game Boy Advance est une marque de fabrique enregistré par Nintendo Co., Ltd. QGBA::ReportView - + Bug report archive Archive de signalement d'erreur - + ZIP archive (*.zip) Archive ZIP (*.zip) @@ -4010,101 +4010,121 @@ Game Boy Advance est une marque de fabrique enregistré par Nintendo Co., Ltd. QGBA::Window - + Game Boy Advance ROMs (%1) ROMs de Game Boy Advance (%1) - + Game Boy ROMs (%1) ROMs de Game Boy (%1) - + All ROMs (%1) Toutes les ROM (%1) - + %1 Video Logs (*.mvl) %1 Journaux vidéo (*.mvl) - + Archives (%1) Archives (%1) - - - + + + Select ROM Choisir une ROM - + Select folder Choisir un dossier - - + + Select save Choisir une sauvegarde - + Select patch Sélectionner un correctif - + Patches (*.ips *.ups *.bps) Correctifs/Patches (*.ips *.ups *.bps) - + Select e-Reader dotcode Sélectionnez le numéro de point du e-Reader - + e-Reader card (*.raw *.bin *.bmp) e-Reader carte (*.raw *.bin *.bmp) - + + Select e-Reader card images + + + + + Image file (*.png *.jpg *.jpeg) + + + + + Conversion finished + + + + + %1 of %2 e-Reader cards converted successfully. + + + + Select image Choisir une image - + Image file (*.png *.gif *.jpg *.jpeg);;All files (*) Image (*.png *.gif *.jpg *.jpeg);;Tous les fichiers (*) - - + + GameShark saves (*.sps *.xps) Sauvegardes GameShark (*.sps *.xps) - + Select video log Sélectionner un journal vidéo - + Video logs (*.mvl) Journaux vidéo (*.mvl) - + Crash Plantage - + The game has crashed with the following error: %1 @@ -4113,629 +4133,634 @@ Game Boy Advance est une marque de fabrique enregistré par Nintendo Co., Ltd. - + Unimplemented BIOS call Requête au BIOS non supporté - + This game uses a BIOS call that is not implemented. Please use the official BIOS for best experience. Ce jeu utilise un appel BIOS qui n'est pas implémenté. Veuillez utiliser le BIOS officiel pour une meilleure expérience. - + Failed to create an appropriate display device, falling back to software display. Games may run slowly, especially with larger windows. Échec de la création d'un périphérique d'affichage approprié, retour à l'affichage du logiciel. Les jeux peuvent fonctionner lentement, en particulier avec des fenêtres plus grandes. - + Really make portable? Vraiment rendre portable ? - + This will make the emulator load its configuration from the same directory as the executable. Do you want to continue? Cela amènera l'émulateur à charger sa configuration depuis le même répertoire que l'exécutable. Souhaitez vous continuer ? - + Restart needed Un redémarrage est nécessaire - + Some changes will not take effect until the emulator is restarted. Certains changements ne prendront effet qu'après le redémarrage de l'émulateur. - + - Player %1 of %2 - Joueur %1 of %2 - + %1 - %2 %1 - %2 - + %1 - %2 - %3 %1 - %2 - %3 - + %1 - %2 (%3 fps) - %4 %1 - %2 (%3 fps) - %4 - + &File &Fichier - + Load &ROM... Charger une &ROM… - + Load ROM in archive... Charger la ROM d'une archive… - + Add folder to library... Ajouter un dossier à la bibliothèque… - + Load &patch... Charger un c&orrectif… - + Boot BIOS Démarrer le BIOS - + Replace ROM... Remplacer la ROM… - + + Convert e-Reader card image to raw... + + + + ROM &info... &Infos sur la ROM… - + Recent Récent - + Make portable Rendre portable - + &Load state &Charger un état - + &Save state &Sauvegarder un état - + Quick load Chargement rapide - + Quick save Sauvegarde rapide - + Load recent Charger un fichier récent - + Save recent Sauvegarder un fichier récent - + Undo load state Annuler le chargement de l'état - + Undo save state Annuler la sauvegarde de l'état - - + + State &%1 État &%1 - + Load camera image... Charger une image de la caméra… - + Convert save game... - + New multiplayer window Nouvelle fenêtre multijoueur - + Connect to Dolphin... - + Report bug... Signalement de l'erreur… - + E&xit &Quitter - + &Emulation &Émulation - + &Reset &Réinitialiser - + Sh&utdown Extin&ction - + Yank game pak Yank game pak - + &Pause &Pause - + &Next frame &Image suivante - + Fast forward (held) Avance rapide (maintenir) - + &Fast forward A&vance rapide - + Fast forward speed Vitesse de l'avance rapide - + Unbounded Sans limites - + %0x %0x - + Rewind (held) Rembobiner (maintenir) - + Re&wind Rem&bobiner - + Step backwards Retour en arrière - + Sync to &video Synchro &vidéo - + Sync to &audio Synchro &audio - + Solar sensor Capteur solaire - + Increase solar level Augmenter le niveau solaire - + Decrease solar level Diminuer le niveau solaire - + Brightest solar level Tester le niveau solaire - + Darkest solar level Assombrir le niveau solaire - + Brightness %1 Luminosité %1 - + Audio/&Video Audio/&Vidéo - + Frame size Taille de l'image - + Toggle fullscreen Basculer en plein écran - + Lock aspect ratio Bloquer les proportions - + Force integer scaling Forcer la mise à l'échelle par des nombres entiers - + Bilinear filtering Filtrage bilinèaire - + Frame&skip &Saut d'image - + Mute Muet - + FPS target FPS ciblé - + Take &screenshot Prendre une ca&pture d'écran - + F12 F12 - + Game Boy Printer... Imprimante GameBoy… - + Video layers Couches vidéo - + Audio channels Canaux audio - + Adjust layer placement... Ajuster la disposition… - + &Tools Ou&tils - + View &logs... Voir les &journaux… - + Game &overrides... - + Couldn't Start N'a pas pu démarrer - + Save games (%1) - + Select save game - + mGBA save state files (%1) - - + + Select save state - + Could not start game. Impossible de démarrer le jeu. - + Load alternate save game... - + Load temporary save game... - + Scan e-Reader dotcodes... Scanner les dotcodes e-Reader... - + Load state file... Charger le fichier d'état... - + Save state file... Enregistrer le fichier d'état... - + Import GameShark Save... Importer la sauvegarde de GameShark... - + Export GameShark Save... Exporter la sauvegarde de GameShark... - + About... À propos de… - + BattleChip Gate... - + %1× %1× - + Interframe blending Mélange d'images - + Native (59.7275) Natif (59.7275) - + Record A/V... Enregistrer A/V... - + Record GIF/WebP/APNG... Enregistrer GIF/WebP/APNG... - + Game Pak sensors... Capteurs de la Game Pak... - + &Cheats... &Cheats… - + Settings... Paramètres… - + Open debugger console... Ouvrir la console de débug… - + Start &GDB server... Démarrer le serveur &GDB… - + View &palette... Voir la &palette… - + View &sprites... Voir les &sprites… - + View &tiles... Voir les &tiles… - + View &map... Voir la &map… - + &Frame inspector... Inspecteur de &frame... - + View memory... Voir la mémoire… - + Search memory... Recherche dans la mémoire… - + View &I/O registers... Voir les registres d'&E/S... - + Record debug video log... Enregistrer le journal vidéo de débogage... - + Stop debug video log Arrêter le journal vidéo de débogage - + Exit fullscreen Quitter le plein écran - + GameShark Button (held) Bouton GameShark (maintenir) - + Autofire Tir automatique - + Autofire A Tir automatique A - + Autofire B Tir automatique B - + Autofire L Tir automatique L - + Autofire R Tir automatique R - + Autofire Start Tir automatique Start - + Autofire Select Tir automatique Select - + Autofire Up Tir automatique Up - + Autofire Right Tir automatique Right - + Autofire Down Tir automatique Down - + Autofire Left Tir automatique Gauche - + Clear Vider diff --git a/src/platform/qt/ts/mgba-ja.ts b/src/platform/qt/ts/mgba-ja.ts index ef843b3d1..f4d0046ea 100644 --- a/src/platform/qt/ts/mgba-ja.ts +++ b/src/platform/qt/ts/mgba-ja.ts @@ -221,37 +221,37 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd. Connect to Dolphin - + Dolphinに接続する Local computer - + ローカルコンピュータ IP address - + IPアドレス Connect - + 接続 Disconnect - + 切断 Close - + 閉じる Reset on connect - + 接続時にリセット @@ -508,7 +508,7 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd. Advanced settings - + 高度な設定 @@ -1685,7 +1685,7 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd. Integer part (low) - + 整数部分(低) @@ -1693,7 +1693,7 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd. Integer part (high) - + 整数部分(高) @@ -2403,7 +2403,7 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd. Address (low) - + アドレス(低) @@ -2415,53 +2415,53 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd. Address (high) - + アドレス(高) Sound frequency (low) - + 音の周波数(低) Sound frequency (high) - + 音の周波数(高) Source (high) - + ソース(高) Source (low) - + ソース(低) Destination (high) - + 目的地(高) Destination (low) - + 目的地(低) Green (low) - + グリーン(低) Green (high) - + グリーン(高) @@ -2952,57 +2952,57 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd. Right/A - + 右/A Left/B - + 左/B Up/Select - + 上/セレクト Down/Start - + 下/スタート Active D-pad - + 有効の十字キー Active face buttons - + 有効のフェイスボタン Internal clock - + 内部時計 32× clocking (CGB only) - + 32×クロッキング(CGBのみ) Transfer active - + 転送有効中 Divider - + 仕切り 1/16 - 4K {1/16?} + 1/16 @@ -3014,49 +3014,49 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd. Timer - + タイマー Serial - + シリアル Joypad - + ゲームパッド Volume right - + 音量右 Output right - + 右出力 Volume left - + 音量左 Output left - + 左出力 Background enable/priority - + 背景の有効化/優先度 Enable sprites - + スプライトを有効にする @@ -3066,49 +3066,49 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd. Background tile map - + 背景タイルマップ 0x9800 – 0x9BFF - + 0x9800 – 0x9BFF 0x9C00 – 0x9FFF - + 0x9C00 – 0x9FFF Background tile data - + 背景タイルデータ 0x8800 – 0x87FF - + 0x8800 – 0x87FF 0x8000 – 0x8FFF - + 0x8000 – 0x8FFF Enable window - + ウィンドウを有効にする Window tile map - + ウィンドウタイルマップ Enable LCD - + LCDを有効にする @@ -3118,22 +3118,22 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd. 0: HBlank - + 0: HBlank 1: VBlank - + 1: VBlank 2: OAM scan - + 2: OAMスキャン 3: HDraw - + 3: HDraw @@ -3143,150 +3143,150 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd. Enable HBlank (mode 0) IRQ - + HBlank(モード0)IRQを有効にする Enable VBlank (mode 1) IRQ - + VBlank(モード1)IRQを有効にする Enable OAM (mode 2) IRQ - + OAM(モード2)IRQを有効にする Enable LYC IRQ - + LYC IRQを有効にする Current Y coordinate - + 現在のY座標 Comparison Y coordinate - + 比較Y座標 Start upper byte - + 上位バイトを開始 Color 0 shade - + カラー0 シェード Color 1 shade - + カラー1 シェード Color 2 shade - + カラー2 シェード Color 3 shade - + カラー3 シェード Prepare to switch speed - + 速度を切り替える準備をする Double speed - + 2倍速 VRAM bank - + VRAMバンク Length - + 長さ Timing - + タイミング Write bit - + 書き込みビット Read bit - + 読み込みビット Unknown - + 不明 Current index - + 現在のインデックス Auto-increment - + 自動増加 Red - Red + Blue - Blue + Sprite ordering - + スプライトの順番 OAM order - + OAM 順番 x coordinate sorting - + x座標の並べ替え WRAM bank - + WRAMバンク @@ -3757,12 +3757,12 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd. QGBA::ReportView - + Bug report archive バグレポートアーカイブ - + ZIP archive (*.zip) ZIPアーカイブ (*.zip) @@ -3772,12 +3772,12 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd. Save games and save states (%1) - + ゲームとステートをセーブ(%1) Select save game or save state - + セーブゲームまたはステートセーブを選択 @@ -3991,101 +3991,101 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd. QGBA::Window - + Game Boy Advance ROMs (%1) ゲームボーイアドバンスファイル (%1) - + Game Boy ROMs (%1) ゲームボーイファイル (%1) - + All ROMs (%1) すべてのファイル (%1) - + %1 Video Logs (*.mvl) %1ビデオログ (*.mvl) - + Archives (%1) アーカイブファイル (%1) - - - + + + Select ROM ROMを開く - + Select folder フォルダを開く - - + + Select save セーブを開く - + Select patch パッチを開く - + Patches (*.ips *.ups *.bps) パッチファイル (*.ips *.ups *.bps) - + Select e-Reader dotcode カードeを開く - + e-Reader card (*.raw *.bin *.bmp) カードe (*.raw *.bin *.bmp) - + Select image 画像を開く - + Image file (*.png *.gif *.jpg *.jpeg);;All files (*) 画像ファイル (*.png *.gif *.jpg *.jpeg);;すべてのファイル (*) - - + + GameShark saves (*.sps *.xps) GameSharkセーブファイル (*.sps *.xps) - + Select video log ビデオログを開く - + Video logs (*.mvl) ビデオログ (*.mvl) - + Crash クラッシュ - + The game has crashed with the following error: %1 @@ -4094,629 +4094,654 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd. %1 - + Couldn't Start 起動失敗 - + Could not start game. ゲームを起動できませんでした。 - + Unimplemented BIOS call 未実装のBIOS呼び出し - + This game uses a BIOS call that is not implemented. Please use the official BIOS for best experience. このゲームは実装されていないBIOS呼び出しを使用します。最高のエクスペリエンスを得るには公式のBIOSを使用してください。 - + Failed to create an appropriate display device, falling back to software display. Games may run slowly, especially with larger windows. 適切なディスプレイデバイスの作成に失敗し、ソフトディスプレイにフォールバックしました。特に大きなウィンドウでは、ゲームの実行が遅い場合があります。 - + Really make portable? 本当にポータブルにしますか? - + This will make the emulator load its configuration from the same directory as the executable. Do you want to continue? これによりエミュレータは実行ファイルと同じディレクトリにある設定ファイルをロードします。続けますか? - + Restart needed 再起動が必要 - + Some changes will not take effect until the emulator is restarted. 一部の変更は、エミュレータを再起動するまで有効になりません。 - + - Player %1 of %2 - プレーヤー %1 of %2 - + %1 - %2 %1 - %2 - + %1 - %2 - %3 %1 - %2 - %3 - + %1 - %2 (%3 fps) - %4 %1 - %2 (%3 fps) - %4 - + &File &ファイル (&F) - + Load &ROM... ROMをロード... - + Load ROM in archive... アーカイブにROMをロード... - + Add folder to library... ライブリーにフォルダを追加... - + Load &patch... パッチをロード... (&P) - + Boot BIOS BIOSを起動 - + Replace ROM... ROMを交換... - + Scan e-Reader dotcodes... カードeをスキャン... - + ROM &info... ROM情報... (&I) - + Recent 最近開いたROM - + Make portable ポータブル化 - + &Load state ステートをロード (&L) - + Report bug... バグ報告 - + About... バージョン情報... - + Record GIF/WebP/APNG... GIF/WebP/APNGを記録 - + Game Pak sensors... カートリッジセンサー... - + Clear 消去 - + Load state file... ステートファイルをロード... - + Save games (%1) - + Select save game - + mGBA save state files (%1) - - + + Select save state - + + Select e-Reader card images + + + + + Image file (*.png *.jpg *.jpeg) + + + + + Conversion finished + + + + + %1 of %2 e-Reader cards converted successfully. + + + + Load alternate save game... - + Load temporary save game... - + + Convert e-Reader card image to raw... + + + + &Save state ステートをセーブ (&S) - + Save state file... ステートファイルをセーブ... - + Quick load クイックロード - + Quick save クイックセーブ - + Load recent 最近使ったクイックロットからロード - + Save recent 最近使ったクイックロットにセーブ - + Undo load state クイックロードを元に戻す - + Undo save state クイックセーブを元に戻す - - + + State &%1 クイックスロット &%1 - + Load camera image... カメラ画像をロード... - + Convert save game... - + Import GameShark Save... GameSharkスナップショットを読み込む - + Export GameShark Save... GameSharkスナップショットを書き出す - + New multiplayer window 新しいウィンドウ(マルチプレイ) - + Connect to Dolphin... - + E&xit 終了 (&X) - + &Emulation エミュレーション (&E) - + &Reset リセット (&R) - + Sh&utdown 閉じる (&U) - + Yank game pak ゲームパックをヤンク - + &Pause 一時停止 (&P) - + &Next frame 次のフレーム (&N) - + Fast forward (held) 早送り(押し) - + &Fast forward 早送り (&F) - + Fast forward speed 早送り速度 - + Unbounded 制限なし - + %0x %0x - + Rewind (held) 巻戻し(押し) - + Re&wind 巻戻し (&R) - + Step backwards 後退 - + Sync to &video ビデオ同期 (&V) - + Sync to &audio オーディオ同期 (&A) - + Solar sensor 太陽センサー - + Increase solar level 明るさを上げる - + Decrease solar level 明るさを下げる - + Brightest solar level 明るさ最高 - + Darkest solar level 明るさ最低 - + Brightness %1 明るさ %1 - + Audio/&Video オーディオ/ビデオ (&V) - + Frame size 画面サイズ - + Toggle fullscreen 全画面表示 - + Lock aspect ratio 縦横比を固定 - + Force integer scaling 整数スケーリングを強制 - + Bilinear filtering バイリニアフィルタリング - + Frame&skip フレームスキップ (&S) - + Mute ミュート - + FPS target FPS - + Native (59.7275) ネイティブ(59.7275) - + Take &screenshot スクリーンショット (&S) - + F12 F12 - + Game Boy Printer... ポケットプリンタ... - + BattleChip Gate... チップゲート... - + %1× %1× - + Interframe blending フレーム間混合 - + Record A/V... ビデオ録画... - + Video layers ビデオレイヤー - + Audio channels オーディオチャンネル - + Adjust layer placement... レイヤーの配置を調整... - + &Tools ツール (&T) - + View &logs... ログビューアー... (&L) - + Game &overrides... ゲーム別設定... (&O) - + &Cheats... チート... (&C) - + Settings... 設定... - + Open debugger console... デバッガコンソールを開く... - + Start &GDB server... GDBサーバを起動... (&G) - + View &palette... パレットビューアー... (&P) - + View &sprites... スプライトビューアー... (&S) - + View &tiles... タイルビューアー... (&T) - + View &map... マップビューアー... (&M) - + &Frame inspector... フレームインスペクタ... (&F) - + View memory... メモリビューアー... - + Search memory... メモリ検索... - + View &I/O registers... IOビューアー... (&I) - + Record debug video log... デバッグビデオログ... - + Stop debug video log デバッグビデオログを停止 - + Exit fullscreen 全画面表示を終了 - + GameShark Button (held) GameSharkボタン(押し) - + Autofire 連打 - + Autofire A 連打 A - + Autofire B 連打 B - + Autofire L 連打 L - + Autofire R 連打 R - + Autofire Start 連打 Start - + Autofire Select 連打 Select - + Autofire Up 連打 上 - + Autofire Right 連打 右 - + Autofire Down 連打 下 - + Autofire Left 連打 左 diff --git a/src/platform/qt/ts/mgba-ko.ts b/src/platform/qt/ts/mgba-ko.ts index 325aa0828..39776287f 100644 --- a/src/platform/qt/ts/mgba-ko.ts +++ b/src/platform/qt/ts/mgba-ko.ts @@ -3757,12 +3757,12 @@ Game Boy Advance는 Nintendo Co., Ltd.의 등록 상표입니다. QGBA::ReportView - + Bug report archive - + ZIP archive (*.zip) @@ -3991,96 +3991,116 @@ Game Boy Advance는 Nintendo Co., Ltd.의 등록 상표입니다. QGBA::Window - + Game Boy Advance ROMs (%1) 게임 보이 어드밴스 롬 (%1) - + Game Boy ROMs (%1) 게임 보이 (%1) - + All ROMs (%1) 모든 롬 (%1) - + %1 Video Logs (*.mvl) %1 비디오 로그 (*.mvl) - + Archives (%1) 아카이브 (%1) - - - + + + Select ROM 롬 선택 - - + + Select save 저장 파일 선택 - + Select patch 패치 선택 - + Patches (*.ips *.ups *.bps) 패치 (*.ips *.ups *.bps) - + Select e-Reader dotcode - + e-Reader card (*.raw *.bin *.bmp) - + + Select e-Reader card images + + + + + Image file (*.png *.jpg *.jpeg) + + + + + Conversion finished + + + + + %1 of %2 e-Reader cards converted successfully. + + + + Select image 이미지 선택 - + Image file (*.png *.gif *.jpg *.jpeg);;All files (*) 이미지 파일 (*.png *.gif *.jpg *.jpeg);;모든 파일 (*) - - + + GameShark saves (*.sps *.xps) 게임샤크 저장 파일 (*.sps *.xps) - + Select video log 비디오 로그 선택 - + Video logs (*.mvl) 비디오 로그 (*.mvl) - + Crash 치명적인 오류 - + The game has crashed with the following error: %1 @@ -4089,634 +4109,639 @@ Game Boy Advance는 Nintendo Co., Ltd.의 등록 상표입니다. %1 - + Unimplemented BIOS call 구현되지 않은 바이오스 호출 - + This game uses a BIOS call that is not implemented. Please use the official BIOS for best experience. 이 게임은 구현되지 않은 바이오스 호출을 사용합니다. 최상의 성능을 얻으려면 공식 바이오스를 사용하십시오. - + Failed to create an appropriate display device, falling back to software display. Games may run slowly, especially with larger windows. - + Really make portable? 정말로 휴대용을 만듭니까? - + This will make the emulator load its configuration from the same directory as the executable. Do you want to continue? 이렇게하면 에뮬레이터가 실행 파일과 동일한 디렉토리에서 구성을 로드하게됩니다. 계속 하시겠습니까? - + Restart needed 재시작 필요 - + Some changes will not take effect until the emulator is restarted. 일부 변경 사항은 에뮬레이터가 다시 시작될 때까지 적용되지 않습니다. - + - Player %1 of %2 - 플레이어 %1 의 %2 - + %1 - %2 %1 - %2 - + %1 - %2 - %3 %1 - %2 - %3 - + %1 - %2 (%3 fps) - %4 %1 - %2 (%3 fps) - %4 - + &File &파일 - + Load &ROM... 로드 &롬... - + Load ROM in archive... 롬을 아카이브에 로드... - + Load &patch... 로드 &패치... - + Boot BIOS BIOS 부팅 - + Replace ROM... 롬 교체... - + Scan e-Reader dotcodes... - + + Convert e-Reader card image to raw... + + + + ROM &info... 롬 &정보... - + Recent 최근 실행 - + Make portable 휴대용 만들기 - + &Load state &로드 파일 상태 - + &Save state &저장 파일 상태 - + Quick load 빠른 로드 - + Quick save 빠른 저장 - + Load recent 최근 실행 로드 - + Save recent 최근 실행 저장 - + Undo load state 로드 파일 상태 복원 - + Undo save state 저장 파일 상태 복원 - - + + State &%1 상태 &%1 - + Load camera image... 카메라 이미지 로드... - + Convert save game... - + New multiplayer window 새로운 멀티 플레이어 창 - + Connect to Dolphin... - + E&xit 종&료 - + &Emulation &에뮬레이션 - + &Reset &재설정 - + Sh&utdown 종&료 - + Yank game pak 양키 게임 팩 - + &Pause &정지 - + &Next frame &다음 프레임 - + Fast forward (held) 빨리 감기 (누름) - + &Fast forward &빨리 감기 - + Fast forward speed 빨리 감기 속도 - + Unbounded 무제한 - + %0x %0x - + Rewind (held) 되김기 (누름) - + Re&wind 리&와인드 - + Step backwards 돌아가기 - + Sync to &video 비디오 &동기화 - + Sync to &audio 오디오 &동기화 - + Brightest solar level 가장 밝은 태양 수준 - + Darkest solar level 가장 어두운 태양 수준 - + Brightness %1 밝기 %1 - + Audio/&Video 오디오/&비디오 - + Frame size 프레임 크기 - + Toggle fullscreen 전체화면 전환 - + Lock aspect ratio 화면비 잠금 - + Frame&skip 프레임&건너뛰기 - + Mute 무음 - + FPS target FPS 대상 - + Take &screenshot 스크린샷 &찍기 - + F12 F12 - + Video layers 비디오 레이어 - + Audio channels 오디오 채널 - + &Tools &도구 - + View &logs... 로그 &보기... - + Game &overrides... 게임 &오버라이드... - + &Cheats... &치트.. - + Open debugger console... 디버거 콘솔 열기... - + Start &GDB server... GDB 서버 &시작... - + Settings... 설정... - + Select folder 폴더 선택 - + Couldn't Start - + Could not start game. - + Add folder to library... 라이브러리에 폴더 추가... - + Load state file... - + Save state file... - + Import GameShark Save... - + Export GameShark Save... - + Report bug... - + About... - + Solar sensor - + Increase solar level - + Decrease solar level - + Force integer scaling 정수 스케일링 강제 수행 - + Bilinear filtering 이중선형 필터링 - + Game Boy Printer... 게임 보이 프린터... - + Save games (%1) - + Select save game - + mGBA save state files (%1) - - + + Select save state - + Load alternate save game... - + Load temporary save game... - + BattleChip Gate... - + %1× %1x {1×?} - + Interframe blending - + Native (59.7275) Nativo (59.7) {59.7275)?} - + Record A/V... - + Record GIF/WebP/APNG... - + Adjust layer placement... 레이어 배치 조정... - + Game Pak sensors... - + View &palette... 팔레트 &보기... - + View &sprites... 스프라이트 &보기... - + View &tiles... 타일 &보기... - + View &map... 지도 &보기... - + &Frame inspector... - + View memory... 메모리 보기... - + Search memory... 메모리 검색... - + View &I/O registers... I/O 레지스터 &보기... - + Record debug video log... - + Stop debug video log - + Exit fullscreen 전체화면 종료 - + GameShark Button (held) 게임샤크 버튼 (누름) - + Autofire 연사 - + Autofire A 연사 A - + Autofire B 연사 B - + Autofire L 연사 L - + Autofire R 연사 R - + Autofire Start 연사 시작 - + Autofire Select - + Clear 정리 - + Autofire Up 연사 위쪽 - + Autofire Right 연사 오른쪽 - + Autofire Down 연사 아래쪽 - + Autofire Left 연사 왼쪽 diff --git a/src/platform/qt/ts/mgba-nb_NO.ts b/src/platform/qt/ts/mgba-nb_NO.ts index dc3a29804..7e2af7b03 100644 --- a/src/platform/qt/ts/mgba-nb_NO.ts +++ b/src/platform/qt/ts/mgba-nb_NO.ts @@ -3756,12 +3756,12 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd. QGBA::ReportView - + Bug report archive - + ZIP archive (*.zip) @@ -3990,730 +3990,755 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd. QGBA::Window - + Game Boy Advance ROMs (%1) - + Game Boy ROMs (%1) - + All ROMs (%1) - + %1 Video Logs (*.mvl) - + Archives (%1) - - - + + + Select ROM - + Select folder - - + + Select save - + Select patch - + Patches (*.ips *.ups *.bps) - + Select e-Reader dotcode - + e-Reader card (*.raw *.bin *.bmp) - + Select image - + Image file (*.png *.gif *.jpg *.jpeg);;All files (*) - - + + GameShark saves (*.sps *.xps) - + Select video log - + Video logs (*.mvl) - + Crash Krasj - + The game has crashed with the following error: %1 - + Couldn't Start - + Could not start game. - + Unimplemented BIOS call - + This game uses a BIOS call that is not implemented. Please use the official BIOS for best experience. - + Failed to create an appropriate display device, falling back to software display. Games may run slowly, especially with larger windows. - + Really make portable? - + This will make the emulator load its configuration from the same directory as the executable. Do you want to continue? - + Restart needed - + Some changes will not take effect until the emulator is restarted. - + - Player %1 of %2 - + %1 - %2 - + %1 - %2 - %3 - + %1 - %2 (%3 fps) - %4 - + &File - + Load &ROM... - + Load ROM in archive... - + Add folder to library... - + Save games (%1) - + Select save game - + mGBA save state files (%1) - - + + Select save state - + + Select e-Reader card images + + + + + Image file (*.png *.jpg *.jpeg) + + + + + Conversion finished + + + + + %1 of %2 e-Reader cards converted successfully. + + + + Load alternate save game... - + Load temporary save game... - + Load &patch... - + Boot BIOS - + Replace ROM... - + Scan e-Reader dotcodes... - + + Convert e-Reader card image to raw... + + + + ROM &info... - + Recent - + Make portable - + &Load state - + Load state file... - + &Save state - + Save state file... - + Quick load - + Quick save - + Load recent - + Save recent - + Undo load state - + Undo save state - - + + State &%1 - + Load camera image... - + Convert save game... - + Import GameShark Save... - + Export GameShark Save... - + New multiplayer window - + Connect to Dolphin... - + Report bug... - + About... - + E&xit - + &Emulation - + &Reset - + Sh&utdown - + Yank game pak - + &Pause - + &Next frame - + Fast forward (held) - + &Fast forward - + Fast forward speed - + Unbounded - + %0x - + Rewind (held) - + Re&wind - + Step backwards - + Sync to &video - + Sync to &audio - + Solar sensor - + Increase solar level - + Decrease solar level - + Brightest solar level - + Darkest solar level - + Brightness %1 - + Game Boy Printer... - + BattleChip Gate... - + Audio/&Video - + Frame size - + %1× - + Toggle fullscreen - + Lock aspect ratio - + Force integer scaling - + Interframe blending - + Bilinear filtering - + Frame&skip - + Mute - + FPS target - + Native (59.7275) - + Take &screenshot - + F12 - + Record A/V... - + Record GIF/WebP/APNG... - + Video layers - + Audio channels - + Adjust layer placement... - + &Tools - + View &logs... - + Game &overrides... - + Game Pak sensors... - + &Cheats... - + Settings... - + Open debugger console... - + Start &GDB server... - + View &palette... - + View &sprites... - + View &tiles... - + View &map... - + &Frame inspector... - + View memory... - + Search memory... - + View &I/O registers... - + Record debug video log... - + Stop debug video log - + Exit fullscreen - + GameShark Button (held) - + Autofire - + Autofire A - + Autofire B - + Autofire L - + Autofire R - + Autofire Start - + Autofire Select - + Autofire Up - + Autofire Right - + Autofire Down - + Autofire Left - + Clear Tøm diff --git a/src/platform/qt/ts/mgba-nl.ts b/src/platform/qt/ts/mgba-nl.ts index 0dd520255..70b6981f4 100644 --- a/src/platform/qt/ts/mgba-nl.ts +++ b/src/platform/qt/ts/mgba-nl.ts @@ -3756,12 +3756,12 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd. QGBA::ReportView - + Bug report archive - + ZIP archive (*.zip) @@ -3990,730 +3990,755 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd. QGBA::Window - + Game Boy Advance ROMs (%1) - + Game Boy ROMs (%1) - + All ROMs (%1) - + %1 Video Logs (*.mvl) - + Archives (%1) - - - + + + Select ROM - + Select folder - - + + Select save - + Select patch - + Patches (*.ips *.ups *.bps) - + Select e-Reader dotcode - + e-Reader card (*.raw *.bin *.bmp) - + Select image - + Image file (*.png *.gif *.jpg *.jpeg);;All files (*) - - + + GameShark saves (*.sps *.xps) - + Select video log - + Video logs (*.mvl) - + Crash - + The game has crashed with the following error: %1 - + Couldn't Start - + Could not start game. - + Unimplemented BIOS call - + This game uses a BIOS call that is not implemented. Please use the official BIOS for best experience. - + Failed to create an appropriate display device, falling back to software display. Games may run slowly, especially with larger windows. - + Really make portable? - + This will make the emulator load its configuration from the same directory as the executable. Do you want to continue? - + Restart needed - + Some changes will not take effect until the emulator is restarted. - + - Player %1 of %2 - + %1 - %2 - + %1 - %2 - %3 - + %1 - %2 (%3 fps) - %4 - + &File - + Load &ROM... - + Load ROM in archive... - + Add folder to library... - + Save games (%1) - + Select save game - + mGBA save state files (%1) - - + + Select save state - + + Select e-Reader card images + + + + + Image file (*.png *.jpg *.jpeg) + + + + + Conversion finished + + + + + %1 of %2 e-Reader cards converted successfully. + + + + Load alternate save game... - + Load temporary save game... - + Load &patch... - + Boot BIOS - + Replace ROM... - + Scan e-Reader dotcodes... - + + Convert e-Reader card image to raw... + + + + ROM &info... - + Recent - + Make portable - + &Load state - + Load state file... - + &Save state - + Save state file... - + Quick load - + Quick save - + Load recent - + Save recent - + Undo load state - + Undo save state - - + + State &%1 - + Load camera image... - + Convert save game... - + Import GameShark Save... - + Export GameShark Save... - + New multiplayer window - + Connect to Dolphin... - + Report bug... - + About... - + E&xit - + &Emulation - + &Reset - + Sh&utdown - + Yank game pak - + &Pause - + &Next frame - + Fast forward (held) - + &Fast forward - + Fast forward speed - + Unbounded - + %0x - + Rewind (held) - + Re&wind - + Step backwards - + Sync to &video - + Sync to &audio - + Solar sensor - + Increase solar level - + Decrease solar level - + Brightest solar level - + Darkest solar level - + Brightness %1 - + Game Boy Printer... - + BattleChip Gate... - + Audio/&Video - + Frame size - + %1× - + Toggle fullscreen - + Lock aspect ratio - + Force integer scaling - + Interframe blending - + Bilinear filtering - + Frame&skip - + Mute - + FPS target - + Native (59.7275) - + Take &screenshot - + F12 - + Record A/V... - + Record GIF/WebP/APNG... - + Video layers - + Audio channels - + Adjust layer placement... - + &Tools - + View &logs... - + Game &overrides... - + Game Pak sensors... - + &Cheats... - + Settings... - + Open debugger console... - + Start &GDB server... - + View &palette... - + View &sprites... - + View &tiles... - + View &map... - + &Frame inspector... - + View memory... - + Search memory... - + View &I/O registers... - + Record debug video log... - + Stop debug video log - + Exit fullscreen - + GameShark Button (held) - + Autofire - + Autofire A - + Autofire B - + Autofire L - + Autofire R - + Autofire Start - + Autofire Select - + Autofire Up - + Autofire Right - + Autofire Down - + Autofire Left - + Clear diff --git a/src/platform/qt/ts/mgba-pt_BR.ts b/src/platform/qt/ts/mgba-pt_BR.ts index 8317b9e8d..40804cd91 100644 --- a/src/platform/qt/ts/mgba-pt_BR.ts +++ b/src/platform/qt/ts/mgba-pt_BR.ts @@ -221,37 +221,37 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Connect to Dolphin - + Conectar ao Dolphin Local computer - + Computador local IP address - + Endereço de IP Connect - + Conectar Disconnect - + Desconectar Close - + Fechar Reset on connect - + Resetar ao conectar @@ -297,7 +297,7 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Record GIF/WebP/APNG - + Gravar GIF/WebP/APNG @@ -488,12 +488,12 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Warning - Warning + Aviso Error - Error + Erro @@ -508,7 +508,7 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Advanced settings - + Configurações avançadas @@ -752,17 +752,17 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Unsigned Integer: - Unsigned Integer: + Inteiro sem sinal: Signed Integer: - Signed Integer: + Inteiro com sinal: String: - String: + Texto: @@ -938,7 +938,7 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Game Overrides - Game Overrides + Substituições no jogo @@ -1021,7 +1021,7 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. VBA bug compatibility mode - + Modo de compatibilidade para falhas no VBA @@ -1094,7 +1094,7 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. 16-bit value - 16-bit value + Valor 16-bit @@ -1178,7 +1178,7 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. 2021 - 2021 + 2021 @@ -1254,7 +1254,7 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Can't yank pack in unexpected platform! - + Não é possível remover o game pak numa plataforma inesperada! @@ -1315,7 +1315,7 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Objwin - + Objwin @@ -1330,7 +1330,7 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Frame - + Quadro @@ -1343,7 +1343,7 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Enable Discord Rich Presence - Habilitar o Discord Rich Presence + Ativar Discord Rich Presence @@ -1427,7 +1427,7 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Graphics Interchange Format (*.gif);;WebP ( *.webp);;Animated Portable Network Graphics (*.png *.apng) - + Graphics Interchange Format (*.gif);;WebP ( *.webp);;Animated Portable Network Graphics (*.png *.apng) @@ -1440,17 +1440,17 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Mode 0: 4 tile layers - Modo 0: 4 camadas de bloco + Modo 0: 4 fundos de blocos Mode 1: 2 tile layers + 1 rotated/scaled tile layer - Modo 1: 2 camadas de blocos + 1 camada de bloco rotacionado/escalonado + Modo 1: 2 fundos de blocos + 1 fundo de blocos com rotação/escala Mode 2: 2 rotated/scaled tile layers - Modo 2: 2 camadas de blocos rotacionados/escalonados + Modo 2: 2 fundos de blocos com rotação/escala @@ -1480,7 +1480,7 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Unlocked HBlank - HBlank desbloqueado + Barramento Horizontal Desbloqueado @@ -1495,47 +1495,47 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Enable background 0 - Habilitar plano de fundo 0 + Ativar plano de fundo 0 Enable background 1 - Habilitar plano de fundo 1 + Ativar plano de fundo 1 Enable background 2 - Habilitar plano de fundo 2 + Ativar plano de fundo 2 Enable background 3 - Habilitar plano de fundo 3 + Ativar plano de fundo 3 Enable OBJ - Habilitar OBJ + Ativar OBJ Enable Window 0 - Habilitar Janela 0 + Ativar Janela 0 Enable Window 1 - Habilitar Janela 1 + Ativar Janela 1 Enable OBJ Window - Habilitar Janela do OBJ + Ativar Janela OBJ Swap green components - + Trocar componentes verde @@ -1555,17 +1555,17 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Enable VBlank IRQ generation - Habilitar geração de VBlank IRQ + Ativar geração de VBlank IRQ Enable HBlank IRQ generation - Habilitar geração de HBlank IRQ + Ativar geração de HBlank IRQ Enable VCounter IRQ generation - Habilitar geração de VCounter IRQ + Ativar geração de VCounter IRQ @@ -1591,7 +1591,7 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Tile data base (* 16kB) - Base de dados de blocos (* 16kB) + Base dos gráficos de blocos (* 16kB) @@ -1599,7 +1599,7 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Enable mosaic - Habilitar mosaico + Ativar mosaico @@ -1607,7 +1607,7 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Enable 256-color - Habilitar 256-cores + Ativar 256-cores @@ -1685,7 +1685,7 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Integer part (low) - + Número inteiro (baixo) @@ -1693,7 +1693,7 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Integer part (high) - + Número inteiro (alto) @@ -1722,122 +1722,122 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Window 0 enable BG 0 - Janela 0 habilitar BG 0 + Janela 0 ativar BG 0 Window 0 enable BG 1 - Janela 0 habilitar BG 1 + Janela 0 ativar BG 1 Window 0 enable BG 2 - Janela 0 habilitar BG 2 + Janela 0 ativar BG 2 Window 0 enable BG 3 - Janela 0 habilitar BG 3 + Janela 0 ativar BG 3 Window 0 enable OBJ - Janela 0 habilitar OBJ + Janela 0 ativar OBJ Window 0 enable blend - Janela 0 habilitar blend + Janela 0 ativar blend Window 1 enable BG 0 - Janela 1 habilitar BG 0 + Janela 1 ativar BG 0 Window 1 enable BG 1 - Janela 1 habilitar BG 1 + Janela 1 ativar BG 1 Window 1 enable BG 2 - Janela 1 habilitar BG 2 + Janela 1 ativar BG 2 Window 1 enable BG 3 - Janela 1 habilitar BG 3 + Janela 1 ativar BG 3 Window 1 enable OBJ - Janela 1 habilitar OBJ + Janela 1 ativar OBJ Window 1 enable blend - Janela 1 habilitar blend + Janela 1 ativar blend Outside window enable BG 0 - Fora da janela habilitar BG 0 + Fora da janela ativar BG 0 Outside window enable BG 1 - Fora da janela habilitar BG 1 + Fora da janela ativar BG 1 Outside window enable BG 2 - Fora da janela habilitar BG 2 + Fora da janela ativar BG 2 Outside window enable BG 3 - Fora da janela habilitar BG 3 + Fora da janela ativar BG 3 Outside window enable OBJ - Fora da janela habilitar OBJ + Fora da janela ativar OBJ Outside window enable blend - Fora da janela habilitar blend + Fora da janela ativar blend OBJ window enable BG 0 - Janela OBJ habilitar BG 0 + Janela OBJ ativar BG 0 OBJ window enable BG 1 - Janela OBJ habilitar BG 1 + Janela OBJ ativar BG 1 OBJ window enable BG 2 - Janela OBJ habilitar BG 2 + Janela OBJ ativar BG 2 OBJ window enable BG 3 - Janela OBJ habilitar BG 3 + Janela OBJ ativar BG 3 OBJ window enable OBJ - Janela OBJ habilitar OBJ + Janela OBJ ativar OBJ OBJ window enable blend - Janela OBJ habilitar blend + Janela OBJ ativar blend @@ -1892,17 +1892,17 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Blend mode - Blend mode + Modo Blend Disabled - Desabilitado + Desativado Additive blending - Blending aditivo + Mistura aditiva @@ -2061,18 +2061,18 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Double-size wave table - Double-size wave table + Tabela de som com duplo tamanho Active wave table - Active wave table + Tabela de som ativa Enable channel 3 - Habilitar canal 3 + Ativar canal 3 @@ -2125,7 +2125,7 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Register stages - Register stages + Estágios do registo @@ -2159,49 +2159,49 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Enable channel 1 right - Habilitar canal 1 à direita + Ativar canal 1 à direita Enable channel 2 right - Habilitar canal 2 à direita + Ativar canal 2 à direita Enable channel 3 right - Habilitar canal 3 à direita + Ativar canal 3 à direita Enable channel 4 right - Habilitar canal 4 à direita + Ativar canal 4 à direita Enable channel 1 left - Habilitar canal 1 à esquerda + Ativar canal 1 à esquerda Enable channel 2 left - Habilitar canal 2 esquerdo + Ativar canal 2 à esquerda Enable channel 3 left - Habilitar canal 3 esquerdo + Ativar canal 3 à esquerda Enable channel 4 left - Habilitar canal 4 esquerdo + Ativar canal 4 à esquerda @@ -2221,12 +2221,12 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Enable channel A right - Habilitar canal A direito + Ativar canal A à direita Enable channel A left - Ativar o canal A esquerdo + Ativar canal A à esquerda @@ -2260,12 +2260,12 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Enable channel B right - Habilitar canal B direito + Ativar canal B à direita Enable channel B left - Habilitar canal B esquerdo + Ativar canal B à esquerda @@ -2305,7 +2305,7 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Enable audio - Habilitar áudio + Ativar áudio @@ -2403,7 +2403,7 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Address (low) - + Endereço (baixo) @@ -2415,53 +2415,53 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Address (high) - + Endereço (alto) Sound frequency (low) - + Frequência do som (baixo) Sound frequency (high) - + Frequência do som (alto) Source (high) - + Fonte (alto) Source (low) - + Fonte (baixo) Destination (high) - + Destinação (alto) Destination (low) - + Destinação (baixo) Green (low) - + Verde (baixo) Green (high) - + Verde (alto) @@ -2613,7 +2613,7 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Enable - Habilitar + Ativar @@ -2886,32 +2886,32 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Cart 0 non-sequential - Cart 0 non-sequential + Cartucho 0 não-sequencial Cart 0 sequential - Cart 0 sequential + Cartucho 0 sequencial Cart 1 non-sequential - Cart 1 non-sequential + Cartucho 1 não-sequencial Cart 1 sequential - Cart 1 sequential + Cartucho 1 sequencial Cart 2 non-sequential - Cart 2 non-sequential + Cartucho 2 não-sequencial Cart 2 sequential - Cart 2 sequential + Cartucho 2 sequencial @@ -2922,7 +2922,7 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Disable - Desabilitado + Desativado @@ -2947,346 +2947,346 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Enable IRQs - Habilitar IRQs + Ativar IRQs Right/A - + Direita/A Left/B - + Esquerda/B Up/Select - + Cima/Select Down/Start - + Baixo/Start Active D-pad - + D-pad Ativo Active face buttons - + Botões ativos Internal clock - + Clock interno 32× clocking (CGB only) - + 32 vezes o clock (apenas GBC) Transfer active - + Transferência ativa Divider - + Divisor 1/16 - 4K {1/16?} + 1/16 LCD STAT - + STAT do LCD Timer - + Temporizador Serial - + Série Joypad - + Joypad Volume right - + Volume direito Output right - + Saída direita Volume left - + Volume esquerdo Output left - + Saída da esquerda Background enable/priority - + Plano de fundo ativo/prioridade Enable sprites - + Ativar sprites Double-height sprites - + Sprites com dobro da altura Background tile map - + Mapeamento de blocos no Fundo 0x9800 – 0x9BFF - + 0x9800 – 0x9BFF 0x9C00 – 0x9FFF - + 0x9C00 – 0x9FFF Background tile data - + Mapeamento dos gráficos no Fundo 0x8800 – 0x87FF - + 0x8800 – 0x87FF 0x8000 – 0x8FFF - + 0x8000 – 0x8FFF Enable window - + Ativar janela Window tile map - + Mapeamento de blocos na Janela Enable LCD - + Ativar LCD Mode - Modo + Modo 0: HBlank - + 0: HBlank / Barramento Horizontal 1: VBlank - + 1: VBlank / Barramento Vertical 2: OAM scan - + 2: Varredura OAM 3: HDraw - + 3: HDraw / Desenho Horizontal In LYC - + Em LYC Enable HBlank (mode 0) IRQ - + Ativar HBlank (modo 0) IRQ Enable VBlank (mode 1) IRQ - + Ativar VBlank (modo 1) IRQ Enable OAM (mode 2) IRQ - + Ativar OAM (modo 2) IRQ Enable LYC IRQ - + Ativar LYC IRQ Current Y coordinate - + Coordenada Y atual Comparison Y coordinate - + Comparação de coordenada Y Start upper byte - + Iniciar, byte superior Color 0 shade - + Tom da Cor 0 Color 1 shade - + Tom da Cor 1 Color 2 shade - + Tom da Cor 2 Color 3 shade - + Tom da Cor 3 Prepare to switch speed - + Preparar para mudança de velocidade Double speed - + Velocidade dupla VRAM bank - + Banco VRAM Length - + Comprimento Timing - + Afinação Write bit - + Bit de escrita Read bit - + Bit de leitura Unknown - + Desconhecido Current index - + Índice atual Auto-increment - + Auto-incrementar Red - Vermelho + Vermelho Blue - Azul + Azul Sprite ordering - + Ordenação da Sprite OAM order - + Ordem da OAM x coordinate sorting - + Ordem por coordenada X WRAM bank - + Banco WRAM @@ -3682,17 +3682,17 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Official MBCs - + MBCs oficiais Licensed MBCs - + MBCs licenciados Unlicensed MBCs - + MBCs não licenciados @@ -3757,12 +3757,12 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. QGBA::ReportView - + Bug report archive - + Arquivo de reportagem de falhas - + ZIP archive (*.zip) Arquivo ZIP (*.zip) @@ -3772,62 +3772,62 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Save games and save states (%1) - + Estado de jogos salvados (%1) Select save game or save state - + Selecione o estado de jogo gravado Save games (%1) - + Salvar jogos (%1) Select save game - + Selecione o jogo salvado Conversion failed - + Conversão falhada Failed to convert the save game. This is probably a bug. - + Falha ao converter o jogo salvado. Provavelmente um erro de programação. No file selected - + Nenhum ficheiro selecionado Could not open file - + Não foi possivel abrir o ficheiro No valid formats found - + Nenhum formato válido encontrado Please select a valid input file - + Por favor selecione um ficheiro de entrada válido No valid conversions found - + Nenhuma conversão válida encontrada Cannot convert save games between platforms - + Não foi possível converter o jogo salvado entre plataformas @@ -3836,7 +3836,7 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Qt Multimedia - Qt multimídia + Qt Multimídia @@ -3861,7 +3861,7 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. None (Still Image) - Nenhum (Still Image) + Nenhum (Imagem parada) @@ -3892,7 +3892,7 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Select directory - + Selecione diretório @@ -3938,7 +3938,7 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Action - Acão + Ação @@ -3991,101 +3991,101 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. QGBA::Window - + Game Boy Advance ROMs (%1) ROMs de Game Boy Advance (%1) - + Game Boy ROMs (%1) ROMs de Game Boy (%1) - + All ROMs (%1) Todas as ROMs (%1) - + %1 Video Logs (*.mvl) %1 Logs de Vídeo (*.mvl) - + Archives (%1) Arquivos (%1) - - - + + + Select ROM Selecionar ROM - + Select folder Selecionar pasta - - + + Select save Selecionar salvamento - + Select patch Selecione correção - + Patches (*.ips *.ups *.bps) Patches (*.ips *.ups *.bps) - + Select e-Reader dotcode Selecione dotcode do e-Reader - + e-Reader card (*.raw *.bin *.bmp) e-Reader card (*.raw *.bin *.bmp) - + Select image Selecionar imagem - + Image file (*.png *.gif *.jpg *.jpeg);;All files (*) Arquivo de imagem (*.png *.gif *.jpg *.jpeg);;Todos os arquivos (*) - - + + GameShark saves (*.sps *.xps) GameShark saves (*.sps *.xps) - + Select video log Selecionar registro de vídeo - + Video logs (*.mvl) Video logs (*.mvl) - + Crash Travamento - + The game has crashed with the following error: %1 @@ -4094,629 +4094,654 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. %1 - + Unimplemented BIOS call Chamada de BIOS não implementada - + This game uses a BIOS call that is not implemented. Please use the official BIOS for best experience. Este jogo usa uma chamada de BIOS que não está implementada. Por favor, use a BIOS oficial para uma melhor experiência. - + Failed to create an appropriate display device, falling back to software display. Games may run slowly, especially with larger windows. - + Falha ao criar um adaptador de gráficos apropriado, voltando ao gráficos por software. Os jogos poderão correr lentamente, especialmente em janelas grandes. - + Really make portable? Quer mesmo tornar portátil? - + This will make the emulator load its configuration from the same directory as the executable. Do you want to continue? Isto fará com que o emulador carregue sua configuração a partir do mesmo diretório que o executável. Você quer continuar? - + Restart needed É necessário reiniciar - + Some changes will not take effect until the emulator is restarted. Algumas alterações não terão efeito até que o emulador seja reiniciado. - + - Player %1 of %2 - Jogador %1 de %2 - + %1 - %2 %1 - %2 - + %1 - %2 - %3 %1 - %2 - %3 - + %1 - %2 (%3 fps) - %4 %1 - %2 (%3 fps) - %4 - + &File &Arquivo - + Load &ROM... Carregar &ROM... - + Load ROM in archive... Carregar ROM em arquivo... - + Add folder to library... Adicionar pasta à biblioteca... - + Load &patch... Carregar &patch... - + Boot BIOS Rodar BIOS - + Replace ROM... Substituir ROM... - + ROM &info... &Informações da ROM... - + Recent Recente - + Make portable Tornar portátil - + &Load state &Carregar Estado - + Report bug... - + Reportar bug... - + About... Sobre... - + Game Pak sensors... Sensores de Game Pak... - + Clear Limpar - + Load state file... Carregar arquivo de estado... - + Save games (%1) - + Jogos salvados (%1) - + Select save game - - - - - mGBA save state files (%1) - + Selecione jogo salvado - + mGBA save state files (%1) + Ficheiro de estado de jogo mGBA (%1) + + + + Select save state + Selecione estado de jogo gravado + + + + Select e-Reader card images - + + Image file (*.png *.jpg *.jpeg) + + + + + Conversion finished + + + + + %1 of %2 e-Reader cards converted successfully. + + + + Load alternate save game... - + Carregar jogo salvado alternativo... - + Load temporary save game... + Carregar jogo salvado temporário... + + + + Convert e-Reader card image to raw... - + &Save state &Salvar Estado - + Save state file... Salvar arquivo de estado... - + Quick load Carregamento rápido - + Quick save Salvamento rápido - + Load recent Carregar recente - + Save recent Salvar recente - + Undo load state Desfazer carregar estado - + Undo save state Desfazer salvar estado - - + + State &%1 Estado &%1 - + Load camera image... Carregar imagem da câmera... - + Convert save game... - + Converter jogo salvado... - + New multiplayer window - Nova janela multijogador + Nova janela multi-jogador - + Connect to Dolphin... - + Conectar ao Dolphin... - + E&xit &Sair - + &Emulation &Emulação - + &Reset &Resetar - + Sh&utdown &Desligar - + Yank game pak Remover game pak - + &Pause &Pausar - + &Next frame &Próximo quadro - + Fast forward (held) Avançar rápido (segurado) - + &Fast forward Avanço &Rápido - + Fast forward speed Velocidade de avanço - + Unbounded Ilimitado - + %0x %0x - + Rewind (held) Retroceder (segurado) - + Re&wind Re&troceder - + Step backwards Voltar um passo - + Sync to &video Sincronizar para &vídeo - + Sync to &audio Sincronizar para &áudio - + Solar sensor Sensor solar - + Increase solar level Aumentar nível solar - + Decrease solar level Diminuir nível solar - + Brightest solar level Nível solar mais brilhante - + Darkest solar level Nível solar mais escuro - + Brightness %1 Brilho %1 - + Audio/&Video Áudio/&Vídeo - + Frame size Tamanho do quadro - + Toggle fullscreen Alternar tela cheia - + Lock aspect ratio Fixar proporção - + Force integer scaling Forçar dimensionamento inteiro - + Bilinear filtering Filtragem bilinear - + Frame&skip &Salto de quadro - + Mute Mudo - + FPS target Meta de FPS - + Native (59.7275) Nativo (59,7275) - + Take &screenshot Capturar &tela - + F12 F12 - + Game Boy Printer... - Game Boy Printer... + Impressora Game Boy... - + BattleChip Gate... BattleChip Gate... - + %1× %1× - + Interframe blending - Interframe blending + Blending entre-telas - + Record A/V... Gravar A/V... - + Video layers Camadas de vídeo - + Audio channels Canais de áudio - + Adjust layer placement... - Ajustar posicionamento da camada... + Ajustar posicionamento de plano... - + &Tools &Ferramentas - + View &logs... Visualizar &registros... - + Game &overrides... Game &overrides... - + Couldn't Start Não foi possível Iniciar - + Could not start game. Não foi possível iniciar o jogo. - + Scan e-Reader dotcodes... Escanear dotcode do e-Reader... - + Import GameShark Save... Importar salvamento do GameShark... - + Export GameShark Save... Exportar salvamento do GameShark... - + Record GIF/WebP/APNG... Gravar GIF/WebP/APNG... - + &Cheats... &Cheats... - + Settings... Configurações... - + Open debugger console... Abrir console de depuração... - + Start &GDB server... Iniciar servidor &GDB... - + View &palette... Visualizar &paleta... - + View &sprites... Visualizar &sprites... - + View &tiles... Visualizar &blocos... - + View &map... Visualizar &mapa... - + &Frame inspector... Inspetor de &quadro... - + View memory... Visualizar memória... - + Search memory... Pesquisar memória... - + View &I/O registers... Visualizar registros de &E/S... - + Record debug video log... Gravar log de vídeo de depuração... - + Stop debug video log Parar log de vídeo de depuração - + Exit fullscreen Sair da tela cheia - + GameShark Button (held) Botão de GameShark (segurado) - + Autofire Disparo automático - + Autofire A Disparo automático A - + Autofire B Disparo automático B - + Autofire L Disparo automático L - + Autofire R Disparo automático R - + Autofire Start Disparo automático Start - + Autofire Select Disparo automático Select - + Autofire Up Disparo automático Cima - + Autofire Right Disparo automático Direita - + Autofire Down Disparo automático Baixo - + Autofire Left Disparo automático Esquerda @@ -4726,17 +4751,17 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. %1 byte - + %1 byte %1 kiB - + %1 kiB %1 MiB - + %1 MiB @@ -4840,17 +4865,17 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Generate Bug Report - + Gerar Relatório de Bug <html><head/><body><p>To file a bug report, please first generate a report file to attach to the bug report you're about to file. It is recommended that you include the save files, as these often help with debugging issues. This will collect some information about the version of {projectName} you're running, your configuration, your computer, and the game you currently have open (if any). Once this collection is completed you can review all of the information gathered below and save it to a zip file. The collection will automatically attempt to redact any personal information, such as your username if it's in any of the paths gathered, but just in case you can edit it afterwards. After you have generated and saved it, please click the button below or go to <a href="https://mgba.io/i/"><span style=" text-decoration: underline; color:#2980b9;">mgba.io/i</span></a> to file the bug report on GitHub. Make sure to attach the report you generated!</p></body></html> - + <html><head/><body><p>Para reportar um bug, primeiro gere um ficheiro de relatório para anexar ao relatório de bug. É recomendado que inclua ficheiros de jogos salvados, já que podem ajudar a resolver problemas de depuração. Isto irá coletar informações sobre a versão do {projectName} que está a correr, suas configurações, seu computador, e o jogo que está aberto (se algum). Quando a coleção estiver completa você poderá revisar toda a informação coletada abaixo e gravar para um ficheiro zip. A coleção tentará automaticamente editar qualquer informação pessoal, como o seu username em qualquer pasta colecionada, mas em qualquer caso você poderá editar mais tarde. Depois de gerado e gravado o relatório, por favor clique no botão abaixo ou vá a <a href="https://mgba.io/i/"><span style=" text-decoration: underline; color:#2980b9;">mgba.io/i</span></a> para reportar o bug ao GitHub. Certifique-se de anexou o relatório que você gerou!</p></body></html> Generate report - + Gerar relatório @@ -4860,17 +4885,17 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Open issue list in browser - + Abrir lista de problemas no navegador Include save file - + Incluir ficheiro de jogo salvado Create and include savestate - + Criar e incluir estado de jogo @@ -4878,103 +4903,103 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Convert/Extract Save Game - + Converter e extrair jogo salvado Input file - + Ficheiro de entrada Browse - Navegar + Navegar Output file - + Ficheiro de saída %1 %2 save game - + %1 %2 jogo salvado little endian - + endian pequeno big endian - + endian grande SRAM - SRAM + SRAM %1 flash - + %1 flash %1 EEPROM - + %1 EEPROM %1 SRAM + RTC - + %1 SRAM + RTC %1 SRAM - + %1 SRAM packed MBC2 - + packed MBC2 unpacked MBC2 - + unpacked MBC2 MBC6 flash - + MBC6 flash MBC6 combined SRAM + flash - + MBC6 combinado SRAM + flash MBC6 SRAM - + MBC6 SRAM TAMA5 - + TAMA5 %1 (%2) - + %1 (%2) %1 save state with embedded %2 save game - + %1 estado de jogo embutido com %2 jogo salvado @@ -5271,7 +5296,7 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Dynamically update window title - + Atualizar título da janela dinamicamente @@ -5281,23 +5306,23 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Save state extra data: - + Dados extras do estado de jogo: Save game - + Salvar jogo Load state extra data: - + Carregar dados extras do estado de jogo: Super Game Boy/Game Boy Color model: - + Modelo Super Game Boy/Game Boy Color: @@ -5495,7 +5520,7 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Enable Game Boy Player features by default - + Ativar funcionalidades do Game Boy Player por padrão @@ -5627,17 +5652,17 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. Game Boy-only model: - + Apenas modelo Game Boy: Game Boy Color-only model: - + Apenas modelo Game Boy Color: Game Boy/Game Boy Color model: - + Modelo Game Boy/Game Boy Color: @@ -5922,12 +5947,12 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. H.264 - H.264 + H.264 H.264 (NVENC) - H.264 (NVENC) + H.264 (NVENC) @@ -5937,7 +5962,7 @@ Game Boy Advance é uma marca registrada da Nintendo Co., Ltd. CRF - + CRF diff --git a/src/platform/qt/ts/mgba-ru.ts b/src/platform/qt/ts/mgba-ru.ts index cd0e432d8..fbb767dee 100644 --- a/src/platform/qt/ts/mgba-ru.ts +++ b/src/platform/qt/ts/mgba-ru.ts @@ -21,13 +21,14 @@ {projectName} would like to thank the following patrons from Patreon: - + {projectName} благодарит своих подписчиков с Patreon: © 2013 – {year} Jeffrey Pfau, licensed under the Mozilla Public License, version 2.0 Game Boy Advance is a registered trademark of Nintendo Co., Ltd. - + © 2013 – {year} Jeffrey Pfau, под лицензией Mozilla Public License, version 2.0 +Game Boy Advance - зарегистрированная торговая марка Nintendo Co., Ltd. @@ -3756,12 +3757,12 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd. QGBA::ReportView - + Bug report archive - + ZIP archive (*.zip) @@ -3990,730 +3991,755 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd. QGBA::Window - + Game Boy Advance ROMs (%1) - + Game Boy ROMs (%1) - + All ROMs (%1) - + %1 Video Logs (*.mvl) - + Archives (%1) - - - + + + Select ROM - + Select folder - - + + Select save - + Select patch - + Patches (*.ips *.ups *.bps) - + Select e-Reader dotcode - + e-Reader card (*.raw *.bin *.bmp) - + Select image - + Image file (*.png *.gif *.jpg *.jpeg);;All files (*) - - + + GameShark saves (*.sps *.xps) - + Select video log - + Video logs (*.mvl) - + Crash - + The game has crashed with the following error: %1 - + Couldn't Start - + Could not start game. - + Unimplemented BIOS call - + This game uses a BIOS call that is not implemented. Please use the official BIOS for best experience. - + Failed to create an appropriate display device, falling back to software display. Games may run slowly, especially with larger windows. - + Really make portable? - + This will make the emulator load its configuration from the same directory as the executable. Do you want to continue? - + Restart needed - + Some changes will not take effect until the emulator is restarted. - + - Player %1 of %2 - + %1 - %2 - + %1 - %2 - %3 - + %1 - %2 (%3 fps) - %4 - + &File - + Load &ROM... - + Load ROM in archive... - + Add folder to library... - + Save games (%1) - + Select save game - + mGBA save state files (%1) - - + + Select save state - + + Select e-Reader card images + + + + + Image file (*.png *.jpg *.jpeg) + + + + + Conversion finished + + + + + %1 of %2 e-Reader cards converted successfully. + + + + Load alternate save game... - + Load temporary save game... - + Load &patch... - + Boot BIOS - + Replace ROM... - + Scan e-Reader dotcodes... - + + Convert e-Reader card image to raw... + + + + ROM &info... - + Recent - + Make portable - + &Load state - + Load state file... - + &Save state - + Save state file... - + Quick load - + Quick save - + Load recent - + Save recent - + Undo load state - + Undo save state - - + + State &%1 - + Load camera image... - + Convert save game... - + Import GameShark Save... - + Export GameShark Save... - + New multiplayer window - + Connect to Dolphin... - + Report bug... - + About... - + E&xit - + &Emulation - + &Reset - + Sh&utdown - + Yank game pak - + &Pause - + &Next frame - + Fast forward (held) - + &Fast forward - + Fast forward speed - + Unbounded - + %0x - + Rewind (held) - + Re&wind - + Step backwards - + Sync to &video - + Sync to &audio - + Solar sensor - + Increase solar level - + Decrease solar level - + Brightest solar level - + Darkest solar level - + Brightness %1 - + Game Boy Printer... - + BattleChip Gate... - + Audio/&Video - + Frame size - + %1× - + Toggle fullscreen - + Lock aspect ratio - + Force integer scaling - + Interframe blending - + Bilinear filtering - + Frame&skip - + Mute - + FPS target - + Native (59.7275) - + Take &screenshot - + F12 - + Record A/V... - + Record GIF/WebP/APNG... - + Video layers - + Audio channels - + Adjust layer placement... - + &Tools - + View &logs... - + Game &overrides... - + Game Pak sensors... - + &Cheats... - + Settings... - + Open debugger console... - + Start &GDB server... - + View &palette... - + View &sprites... - + View &tiles... - + View &map... - + &Frame inspector... - + View memory... - + Search memory... - + View &I/O registers... - + Record debug video log... - + Stop debug video log - + Exit fullscreen - + GameShark Button (held) - + Autofire - + Autofire A - + Autofire B - + Autofire L - + Autofire R - + Autofire Start - + Autofire Select - + Autofire Up - + Autofire Right - + Autofire Down - + Autofire Left - + Clear diff --git a/src/platform/qt/ts/mgba-template.ts b/src/platform/qt/ts/mgba-template.ts index f818b528c..fa75ab419 100644 --- a/src/platform/qt/ts/mgba-template.ts +++ b/src/platform/qt/ts/mgba-template.ts @@ -3756,12 +3756,12 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd. QGBA::ReportView - + Bug report archive - + ZIP archive (*.zip) @@ -3990,730 +3990,755 @@ Game Boy Advance is a registered trademark of Nintendo Co., Ltd. QGBA::Window - + Game Boy Advance ROMs (%1) - + Game Boy ROMs (%1) - + All ROMs (%1) - + %1 Video Logs (*.mvl) - + Archives (%1) - - - + + + Select ROM - + Select folder - - + + Select save - + Select patch - + Patches (*.ips *.ups *.bps) - + Select e-Reader dotcode - + e-Reader card (*.raw *.bin *.bmp) - + Select image - + Image file (*.png *.gif *.jpg *.jpeg);;All files (*) - - + + GameShark saves (*.sps *.xps) - + Select video log - + Video logs (*.mvl) - + Crash - + The game has crashed with the following error: %1 - + Couldn't Start - + Could not start game. - + Unimplemented BIOS call - + This game uses a BIOS call that is not implemented. Please use the official BIOS for best experience. - + Failed to create an appropriate display device, falling back to software display. Games may run slowly, especially with larger windows. - + Really make portable? - + This will make the emulator load its configuration from the same directory as the executable. Do you want to continue? - + Restart needed - + Some changes will not take effect until the emulator is restarted. - + - Player %1 of %2 - + %1 - %2 - + %1 - %2 - %3 - + %1 - %2 (%3 fps) - %4 - + &File - + Load &ROM... - + Load ROM in archive... - + Add folder to library... - + Save games (%1) - + Select save game - + mGBA save state files (%1) - - + + Select save state - + + Select e-Reader card images + + + + + Image file (*.png *.jpg *.jpeg) + + + + + Conversion finished + + + + + %1 of %2 e-Reader cards converted successfully. + + + + Load alternate save game... - + Load temporary save game... - + Load &patch... - + Boot BIOS - + Replace ROM... - + Scan e-Reader dotcodes... - + + Convert e-Reader card image to raw... + + + + ROM &info... - + Recent - + Make portable - + &Load state - + Load state file... - + &Save state - + Save state file... - + Quick load - + Quick save - + Load recent - + Save recent - + Undo load state - + Undo save state - - + + State &%1 - + Load camera image... - + Convert save game... - + Import GameShark Save... - + Export GameShark Save... - + New multiplayer window - + Connect to Dolphin... - + Report bug... - + About... - + E&xit - + &Emulation - + &Reset - + Sh&utdown - + Yank game pak - + &Pause - + &Next frame - + Fast forward (held) - + &Fast forward - + Fast forward speed - + Unbounded - + %0x - + Rewind (held) - + Re&wind - + Step backwards - + Sync to &video - + Sync to &audio - + Solar sensor - + Increase solar level - + Decrease solar level - + Brightest solar level - + Darkest solar level - + Brightness %1 - + Game Boy Printer... - + BattleChip Gate... - + Audio/&Video - + Frame size - + %1× - + Toggle fullscreen - + Lock aspect ratio - + Force integer scaling - + Interframe blending - + Bilinear filtering - + Frame&skip - + Mute - + FPS target - + Native (59.7275) - + Take &screenshot - + F12 - + Record A/V... - + Record GIF/WebP/APNG... - + Video layers - + Audio channels - + Adjust layer placement... - + &Tools - + View &logs... - + Game &overrides... - + Game Pak sensors... - + &Cheats... - + Settings... - + Open debugger console... - + Start &GDB server... - + View &palette... - + View &sprites... - + View &tiles... - + View &map... - + &Frame inspector... - + View memory... - + Search memory... - + View &I/O registers... - + Record debug video log... - + Stop debug video log - + Exit fullscreen - + GameShark Button (held) - + Autofire - + Autofire A - + Autofire B - + Autofire L - + Autofire R - + Autofire Start - + Autofire Select - + Autofire Up - + Autofire Right - + Autofire Down - + Autofire Left - + Clear diff --git a/src/platform/qt/ts/mgba-tr.ts b/src/platform/qt/ts/mgba-tr.ts index f009b3d7a..cd4d0dd85 100644 --- a/src/platform/qt/ts/mgba-tr.ts +++ b/src/platform/qt/ts/mgba-tr.ts @@ -3757,12 +3757,12 @@ Game Boy Advance, Nintendo Co., Ltd.'nin tescilli ticari markasıdır. QGBA::ReportView - + Bug report archive - + ZIP archive (*.zip) @@ -3991,101 +3991,121 @@ Game Boy Advance, Nintendo Co., Ltd.'nin tescilli ticari markasıdır. QGBA::Window - + Game Boy Advance ROMs (%1) Game Boy Advance ROMları (%1) - + Game Boy ROMs (%1) Game Boy ROMları (%1) - + All ROMs (%1) Bütün ROMlar (%1) - + %1 Video Logs (*.mvl) - + Archives (%1) Arşivler (%1) - - - + + + Select ROM ROM seç - + Select folder Klasör seç - - + + Select save Kayıt seç - + Select patch Yama seç - + Patches (*.ips *.ups *.bps) Yamalar (*.ips *.ups *.bps) - + Select e-Reader dotcode - + e-Reader card (*.raw *.bin *.bmp) - + + Select e-Reader card images + + + + + Image file (*.png *.jpg *.jpeg) + + + + + Conversion finished + + + + + %1 of %2 e-Reader cards converted successfully. + + + + Select image Resim seç - + Image file (*.png *.gif *.jpg *.jpeg);;All files (*) Resim dosyası (*.png *.gif *.jpg *.jpeg);;All files (*) - - + + GameShark saves (*.sps *.xps) GameShark kayıtları (*.sps *.xps) - + Select video log Video günlüğü seç - + Video logs (*.mvl) Video günlükleri (*.mvl) - + Crash Çökme - + The game has crashed with the following error: %1 @@ -4094,629 +4114,634 @@ Game Boy Advance, Nintendo Co., Ltd.'nin tescilli ticari markasıdır. - + Unimplemented BIOS call Uygulanmamış BIOS girişi - + This game uses a BIOS call that is not implemented. Please use the official BIOS for best experience. Oyun BIOS dosyasına ihtiyacı var. Lütfen en iyi deneyim için resmi BIOS'u kullanın. - + Failed to create an appropriate display device, falling back to software display. Games may run slowly, especially with larger windows. - + Really make portable? Taşınabilir yapılsın mı? - + This will make the emulator load its configuration from the same directory as the executable. Do you want to continue? Emülatörün yapılandırmasını yürütülebilir dosya ile aynı dizinden yüklemesini sağlar. Devam etmek istiyor musun? - + Restart needed Yeniden başlatma gerekli - + Some changes will not take effect until the emulator is restarted. Bazı değişiklikler emülatör yeniden başlatılıncaya kadar etkili olmaz. - + - Player %1 of %2 - + %1 - %2 - + %1 - %2 - %3 - + %1 - %2 (%3 fps) - %4 - + &File - + Load &ROM... &ROM yükle... - + Load ROM in archive... ROM'u arşivden yükle ... - + Add folder to library... Kütüphaneye klasör ekle ... - + Load &patch... &Patch yükle... - + Boot BIOS BIOS boot et - + Replace ROM... ROM değişti... - + + Convert e-Reader card image to raw... + + + + ROM &info... ROM &info... - + Recent Son kullanılanlar - + Make portable Portatif yap - + &Load state &Kaydedilmiş konum yükle - + Load state file... Kaydedilmiş konum dosyası yükle... - + &Save state &Konumu kaydet - + Save state file... Konum dosyasını kaydet... - + Quick load Hızlı Yükle - + Quick save Hızlı kaydet - + Load recent En son yükle - + Save recent Hızlı kaydet - + Undo load state Kaydedilen konum yüklemeyi geri al - + Undo save state Konum kaydetmeyi geri al - - + + State &%1 Konum &%1 - + Load camera image... Kamera resmini yükle ... - + Convert save game... - + New multiplayer window Yeni çokoyunculu ekranı - + Connect to Dolphin... - + Report bug... - + About... Hakkında... - + E&xit Çıkış - + &Emulation Emülasyon - + &Reset &Reset - + Sh&utdown Kapat - + Yank game pak - + &Pause &Durdur - + &Next frame &Sonraki kare - + Fast forward (held) İleriye sar(basılı tutun) - + &Fast forward &İleriye sar - + Fast forward speed İleriye sarma hızı - + Unbounded - + %0x - + Rewind (held) Geri sar (basılı tutun) - + Re&wind Geri sar - + Step backwards Geriye doğru adım - + Sync to &video &Videoya eşitle - + Sync to &audio &Sese eşitle - + Solar sensor - + Increase solar level Solar seviyesini arttır - + Decrease solar level Solar seviyesini düşür - + Brightest solar level En parlak solar seviyesi - + Darkest solar level En karanlık solar seviyesi - + Brightness %1 Parlaklık:%1 - + Game Boy Printer... Game Boy yazıcısı... - + BattleChip Gate... - + Audio/&Video Ses/&Video - + Frame size Çerçeve boyutu - + Toggle fullscreen Tamekranı aç/kapa - + Lock aspect ratio En boy oranını kilitle - + Force integer scaling Tamsayılı ölçeklendirmeyi zorla - + Bilinear filtering Bilinear filtreleme - + Frame&skip Kare atlama - + Mute Sessiz - + FPS target FPS hedefi - + Native (59.7275) - + Take &screenshot Ekran görüntüsü al - + F12 - + Video layers - + Audio channels Ses kanalları - + Adjust layer placement... Katman yerleşimini ayarlayın... - + &Tools &Araçlar - + View &logs... Kayıtları görüntüle... - + Game &overrides... Oyunların üzerine yazılanlar - + Couldn't Start - + Save games (%1) - + Select save game - + mGBA save state files (%1) - - + + Select save state - + Could not start game. - + Load alternate save game... - + Load temporary save game... - + Scan e-Reader dotcodes... - + Import GameShark Save... - + Export GameShark Save... - + %1× - + Interframe blending - + Record A/V... - + Record GIF/WebP/APNG... - + Game Pak sensors... - + &Cheats... &Hileler... - + Settings... Ayarlar... - + Open debugger console... Hata ayıklayıcı konsolunu aç ... - + Start &GDB server... &GDB sunucusunu başlat... - + View &palette... &Renk Paletini gör... - + View &sprites... &Spriteları gör... - + View &tiles... &Desenleri gör... - + View &map... &Haritayı gör - + &Frame inspector... - + View memory... Hafıza gör... - + Search memory... Hafızada ara... - + View &I/O registers... &I/O kayıtlarını görüntüle - + Record debug video log... - + Stop debug video log - + Exit fullscreen Tam ekrandan çık - + GameShark Button (held) GameShark Butonu (basılı tutun) - + Autofire Otomatik basma - + Autofire A Otomatik basma A - + Autofire B Otomatik basma B - + Autofire L Otomatik basma L - + Autofire R Otomatik basma R - + Autofire Start Otomatik basma Start - + Autofire Select Otomatik basma Select - + Autofire Up Otomatik basma Up - + Autofire Right Otomatik basma Right - + Autofire Down Otomatik basma Down - + Autofire Left Otomatik basma Sol - + Clear Temizle diff --git a/src/platform/qt/ts/mgba-zh_CN.ts b/src/platform/qt/ts/mgba-zh_CN.ts index 1fd1f0bd9..b3f5c616f 100644 --- a/src/platform/qt/ts/mgba-zh_CN.ts +++ b/src/platform/qt/ts/mgba-zh_CN.ts @@ -3757,12 +3757,12 @@ Game Boy Advance 是任天堂有限公司(Nintendo Co., Ltd.)的注册商标 QGBA::ReportView - + Bug report archive 错误报告存档 - + ZIP archive (*.zip) ZIP 存档 (*.zip) @@ -3991,101 +3991,101 @@ Game Boy Advance 是任天堂有限公司(Nintendo Co., Ltd.)的注册商标 QGBA::Window - + Game Boy Advance ROMs (%1) Game Boy Advance ROM (%1) - + Game Boy ROMs (%1) Game Boy ROM (%1) - + All ROMs (%1) 所有 ROM (%1) - + %1 Video Logs (*.mvl) %1 视频日志 (*.mvl) - + Archives (%1) 压缩文件 (%1) - - - + + + Select ROM 选择 ROM - + Select folder 选择文件夹 - - + + Select save 选择存档 - + Select patch 选择补丁 - + Patches (*.ips *.ups *.bps) 补丁 (*.ips *.ups *.bps) - + Select e-Reader dotcode 选择 e-Reader 点码 - + e-Reader card (*.raw *.bin *.bmp) e-Reader 卡 (*.raw *.bin *.bmp) - + Select image 选择图片 - + Image file (*.png *.gif *.jpg *.jpeg);;All files (*) 图像文件 (*.png *.gif *.jpg *.jpeg);;所有文件 (*) - - + + GameShark saves (*.sps *.xps) GameShark 存档 (*.sps *.xps) - + Select video log 选择视频日志 - + Video logs (*.mvl) 视频日志文件 (*.mvl) - + Crash 崩溃 - + The game has crashed with the following error: %1 @@ -4094,629 +4094,654 @@ Game Boy Advance 是任天堂有限公司(Nintendo Co., Ltd.)的注册商标 %1 - + Couldn't Start 无法启动 - + Could not start game. 无法启动游戏。 - + Unimplemented BIOS call 未实现的 BIOS 调用 - + This game uses a BIOS call that is not implemented. Please use the official BIOS for best experience. 此游戏使用尚未实现的 BIOS 调用。请使用官方 BIOS 以获得最佳体验。 - + Failed to create an appropriate display device, falling back to software display. Games may run slowly, especially with larger windows. 无法创建适合的显示设备,正在回滚到软件显示。游戏的运行速度(特别在大窗口的情况下)可能会变慢。 - + Really make portable? 确定进行程序便携化? - + This will make the emulator load its configuration from the same directory as the executable. Do you want to continue? 进行此操作后,模拟器将从其可执行文件所在目录中载入模拟器配置。您想继续吗? - + Restart needed 需要重新启动 - + Some changes will not take effect until the emulator is restarted. 更改将在模拟器下次重新启动时生效。 - + - Player %1 of %2 - 玩家 %1 共 %2 - + %1 - %2 %1 - %2 - + %1 - %2 - %3 %1 - %2 - %3 - + %1 - %2 (%3 fps) - %4 %1 - %2 (%3 fps) - %4 - + &File 文件(&F) - + Load &ROM... 载入 ROM(&R)... - + Load ROM in archive... 从压缩文件中载入 ROM... - + Add folder to library... 将文件夹添加到库中... - + Save games (%1) - + Select save game - + mGBA save state files (%1) - - + + Select save state - + + Select e-Reader card images + + + + + Image file (*.png *.jpg *.jpeg) + + + + + Conversion finished + + + + + %1 of %2 e-Reader cards converted successfully. + + + + Load alternate save game... - + Load temporary save game... - + Load &patch... 载入补丁(&P)... - + Boot BIOS 引导 BIOS - + Replace ROM... 替换 ROM... - + Scan e-Reader dotcodes... 扫描 e-Reader 点码... - + + Convert e-Reader card image to raw... + + + + ROM &info... ROM 信息(&I)... - + Recent 最近打开 - + Make portable 程序便携化 - + &Load state 载入即时存档(&L) - + Load state file... 载入即时存档文件... - + &Save state 保存即时存档(&S) - + Save state file... 保存即时存档文件... - + Quick load 快速读档 - + Quick save 快速存档 - + Load recent 载入最近存档 - + Save recent 保存最近存档 - + Undo load state 撤消读档 - + Undo save state 撤消存档 - - + + State &%1 即时存档 (&%1) - + Load camera image... 载入相机图片... - + Convert save game... - + Import GameShark Save... 导入 GameShark 存档... - + Export GameShark Save... 导出 GameShark 存档... - + New multiplayer window 新建多人游戏窗口 - + Connect to Dolphin... - + Report bug... 报告错误... - + About... 关于... - + E&xit 退出(&X) - + &Emulation 模拟(&E) - + &Reset 重置(&R) - + Sh&utdown 关机(&U) - + Yank game pak 快速抽出游戏卡带 - + &Pause 暂停(&P) - + &Next frame 下一帧(&N) - + Fast forward (held) 快进 (长按) - + &Fast forward 快进(&F) - + Fast forward speed 快进速度 - + Unbounded 不限制 - + %0x %0x - + Rewind (held) 倒带 (长按) - + Re&wind 倒带(&W) - + Step backwards 步退 - + Sync to &video 视频同步(&V) - + Sync to &audio 音频同步(&A) - + Solar sensor 太阳光传感器 - + Increase solar level 增加太阳光等级 - + Decrease solar level 降低太阳光等级 - + Brightest solar level 太阳光等级为最亮 - + Darkest solar level 太阳光等级为最暗 - + Brightness %1 亮度 %1 - + Game Boy Printer... Game Boy 打印机... - + BattleChip Gate... BattleChip Gate... - + Audio/&Video 音频/视频(&V) - + Frame size 画面大小 - + %1× %1× - + Toggle fullscreen 切换全屏 - + Lock aspect ratio 锁定纵横比 - + Force integer scaling 强制整数缩放 - + Interframe blending 帧间混合 - + Bilinear filtering 双线性过滤 - + Frame&skip 跳帧(&S) - + Mute 静音 - + FPS target 目标 FPS - + Native (59.7275) 原生 (59.7275) - + Take &screenshot 截图(&S) - + F12 F12 - + Record A/V... 录制音频/视频... - + Record GIF/WebP/APNG... 录制 GIF/WebP/APNG... - + Video layers 视频图层 - + Audio channels 音频声道 - + Adjust layer placement... 调整图层布局... - + &Tools 工具(&T) - + View &logs... 查看日志(&L)... - + Game &overrides... 覆写游戏(&O)... - + Game Pak sensors... 游戏卡带传感器... - + &Cheats... 作弊码(&C)... - + Settings... 设置... - + Open debugger console... 打开调试器控制台... - + Start &GDB server... 打开 GDB 服务器(&G)... - + View &palette... 查看调色板(&P)... - + View &sprites... 查看精灵图(&S)... - + View &tiles... 查看图块(&T)... - + View &map... 查看映射(&M)... - + &Frame inspector... 框架检查器(&F)... - + View memory... 查看内存... - + Search memory... 搜索内存... - + View &I/O registers... 查看 I/O 寄存器(&I)... - + Record debug video log... 记录调试视频日志... - + Stop debug video log 停止记录调试视频日志 - + Exit fullscreen 退出全屏 - + GameShark Button (held) GameShark 键 (长按) - + Autofire 连发 - + Autofire A 连发 A - + Autofire B 连发 B - + Autofire L 连发 L - + Autofire R 连发 R - + Autofire Start 连发 Start - + Autofire Select 连发 Select - + Autofire Up 连发 上 - + Autofire Right 连发 右 - + Autofire Down 连发 下 - + Autofire Left 连发 左 - + Clear 清除 diff --git a/src/util/convolve.c b/src/util/convolve.c index 358707cb3..8dfcd1b58 100644 --- a/src/util/convolve.c +++ b/src/util/convolve.c @@ -136,3 +136,47 @@ void Convolve2DClampPacked8(const uint8_t* restrict src, uint8_t* restrict dst, } } } + +void Convolve2DClampChannels8(const uint8_t* restrict src, uint8_t* restrict dst, size_t width, size_t height, size_t stride, size_t channels, const struct ConvolutionKernel* restrict kernel) { + if (kernel->rank != 2) { + return; + } + size_t kx2 = kernel->dims[0] / 2; + size_t ky2 = kernel->dims[1] / 2; + size_t y; + for (y = 0; y < height; ++y) { + uint8_t* orow = &dst[y * stride]; + size_t x; + for (x = 0; x < width; ++x) { + size_t c; + for (c = 0; c < channels; ++c) { + float sum = 0.f; + size_t ky; + for (ky = 0; ky < kernel->dims[1]; ++ky) { + size_t cy = 0; + if (y + ky > ky2) { + cy = y + ky - ky2; + } + if (cy >= height) { + cy = height - 1; + } + const uint8_t* irow = &src[cy * stride]; + size_t kx; + for (kx = 0; kx < kernel->dims[0]; ++kx) { + size_t cx = 0; + if (x + kx > kx2) { + cx = x + kx - kx2; + } + if (cx >= width) { + cx = width - 1; + } + cx *= channels; + sum += irow[cx + c] * kernel->kernel[ky * kernel->dims[0] + kx]; + } + } + *orow = sum; + ++orow; + } + } + } +}