Add new options and update pt-BR.json (#612)

* add new options and update pt-BR.json

* fix adBlocked function

* add new option to adBlocked function

* fix the `start-clicked` function

* Clean up code
This commit is contained in:
Allan Niles 2023-08-13 09:10:33 -06:00
parent 004c8da2c9
commit 38172ec92f
8 changed files with 279 additions and 127 deletions

View file

@ -107,11 +107,38 @@
transform: rotate(-45deg) translateY(-50%) translateX(0);
}
.ejs_game {/* todo. User selectable background loading image */
width: 100%;
height: 100%;
background-color: rgb(51, 51, 51);
.ejs_game {
width: inherit;
height: inherit;
background-color: var(--ejs-background-color);
cursor: default;
position: relative;
overflow: hidden;
}
.ejs_game_background {
background-image: var(--ejs-background-image);
background-size: contain;
background-position: center center;
background-repeat: no-repeat;
}
.ejs_game_background_blur:before,
.ejs_game_background_blur:after {
content: "";
position: absolute;
width: 100%;
height: 100%;
background: var(--ejs-background-image);
background-repeat: no-repeat;
background-position: center;
background-size: contain;
}
.ejs_game_background_blur:before {
background-size: cover;
filter: blur(10px);
transform: scale(1.1);
}
.ejs_start_button {
@ -121,7 +148,6 @@
transform: translateX(-50%);
cursor: pointer;
box-sizing: inherit;
display: flex;
justify-content: center;
text-shadow: 0 1px 1px rgba(0,0,0,0.5);
@ -138,13 +164,27 @@
border-radius: 35px;
text-align: center;
background-color: rgba(var(--ejs-primary-color),1);
box-shadow: 0 0 0 0 #222, 0 0px 0px 0 #111, inset 0 0px 0px 0 rgba(250,250,250,0.2), inset 0 0px 0px 0px rgba(0,0,0,0.5);
}
.ejs_start_button:active {
box-shadow: 0 0 0 0 #222, 0 3px 7px 0 #111, inset 0 1px 1px 0 rgba(250,250,250,0.2), inset 0 -10px 35px 5px rgba(0,0,0,0.5);
bottom: 64px;
.ejs_start_button_border {
border: 0.5px solid #333;
}
.ejs_start_button:active, .ejs_start_button:hover {
animation: ejs_start_button_pulse 2s infinite;
bottom: 65px;
}
@keyframes ejs_start_button_pulse {
50% {
box-shadow: 0 0 0 0 #222, 0 3px 7px 0 #111, inset 0 1px 1px 0 rgba(250,250,250,0.2), inset 0 0px 15px 1px rgba(0,0,0,0.5);
}
0%, 100% {
box-shadow: 0 0 0 0 #222, 0 0px 0px 0 #111, inset 0 0px 0px 0 rgba(250,250,250,0.2), inset 0 0px 0px 0px rgba(0,0,0,0.5);
}
}
.ejs_loading_text {
position: absolute;
bottom: 20px;
@ -156,6 +196,13 @@
color: #bcbcbc;
}
.ejs_loading_text_glow {
background-color: rgba(0, 0, 0, 0.9);
border-radius: 10px;
padding: 1px 5px 1px 5px;
box-shadow: 0 0 30px rgba(0, 0, 0, 0.9);
}
.ejs_canvas {
width: 100%;
height: 100%;
@ -1009,6 +1056,7 @@
border-width: 0;
cursor: pointer;
-webkit-appearance: button;
appearance: button;
text-transform: none;
overflow: visible;
margin: 0;
@ -1144,6 +1192,7 @@
}
.ejs_volume_parent input[type='range']{
-webkit-appearance:none;
appearance: none;
border:0;
border-radius:28px;
color:rgba(var(--ejs-primary-color), 1);
@ -1154,10 +1203,10 @@
}
.ejs_volume_parent input[type='range']::-webkit-slider-runnable-track{
background-color:rgba(255,255,255,0.25)
box-shadow:0 0 0 5px rgba(var(--ejs-primary-color), 0.5);
outline:0
background:transparent;
background-color:rgba(255,255,255,0.25);
box-shadow: 0 0 0 5px rgba(var(--ejs-primary-color), 0.5);
outline:0;
background: transparent;
border:0;
border-radius:3px;
height:6px;
@ -1178,9 +1227,9 @@
margin-top:-4px
}
.ejs_volume_parent input[type='range']::-moz-range-track{
background-color:rgba(255,255,255,0.25)
background-color:rgba(255,255,255,0.25);
box-shadow:0 0 0 5px rgba(var(--ejs-primary-color), 0.5);
outline:0
outline:0;
background:transparent;
border:0;
border-radius:3px;
@ -1204,9 +1253,9 @@
height:6px
}
.ejs_volume_parent input[type='range']::-ms-track{
background-color:rgba(255,255,255,0.25)
background-color:rgba(255,255,255,0.25);
box-shadow:0 0 0 5px rgba(var(--ejs-primary-color), 0.5);
outline:0
outline:0;
background:transparent;
border:0;
border-radius:3px;

View file

@ -250,7 +250,11 @@ class EmulatorJS {
this.listeners = [];
this.setElements(element);
this.setColor(this.config.color || "");
if (this.config.adUrl) this.setupAds(this.config.adUrl);
this.config.backgroundColor = (typeof this.config.backgroundColor === "string") ? this.config.backgroundColor : "rgb(51, 51, 51)";
if (this.config.adUrl) {
this.config.adSize = (Array.isArray(this.config.adSize)) ? this.config.adSize : ["300px", "250px"];
this.setupAds(this.config.adUrl, this.config.adSize[0], this.config.adSize[1]);
}
this.canvas = this.createElement('canvas');
this.canvas.classList.add('ejs_canvas');
this.bindListeners();
@ -271,16 +275,15 @@ class EmulatorJS {
this.game.classList.add("ejs_game");
if (typeof this.config.backgroundImg === "string") {
this.game.style["background-image"] = "url('"+this.config.backgroundImg+"')";
this.game.style["background-size"] = "contain";
this.game.style["background-position"] = "center";
this.game.style["background-repeat"] = "no-repeat";
this.game.classList.add("ejs_game_background");
if (this.config.backgroundBlur) this.game.classList.add("ejs_game_background_blur");
this.game.setAttribute("style", "--ejs-background-image: url("+this.config.backgroundImg+"); --ejs-background-color: "+this.config.backgroundColor+";");
this.on("start", () => {
this.game.style["background-image"] = "";
this.game.style["background-size"] = "";
this.game.style["background-position"] = "";
this.game.style["background-repeat"] = "";
this.game.classList.remove("ejs_game_background");
if (this.config.backgroundBlur) this.game.classList.remove("ejs_game_background_blur");
})
}else{
this.game.setAttribute("style", "--ejs-background-color: "+this.config.backgroundColor+";");
}
if (Array.isArray(this.config.cheats)) {
@ -324,16 +327,16 @@ class EmulatorJS {
}
this.elements.parent.setAttribute("style", "--ejs-primary-color:" + getColor(color) + ";");
}
setupAds(ads) {
setupAds(ads, width, height) {
const div = this.createElement("div");
const time = (typeof this.config.adMode === "number" && this.config.adMode > -1 && this.config.adMode < 3) ? this.config.adMode : 2;
div.classList.add("ejs_ad_iframe");
const frame = this.createElement("iframe");
frame.src = ads;
frame.setAttribute("scrolling", "no");
frame.setAttribute("frameborder", "no");
frame.style.width = "300px";
frame.style.height = "250px";
frame.style.width = width;
frame.style.height = height;
const closeParent = this.createElement("div");
closeParent.classList.add("ejs_ad_close");
const closeButton = this.createElement("a");
@ -341,14 +344,24 @@ class EmulatorJS {
closeParent.setAttribute("hidden", "");
div.appendChild(closeParent);
div.appendChild(frame);
this.elements.parent.appendChild(div);
if (this.config.adMode !== 1) {
this.elements.parent.appendChild(div);
}
this.addEventListener(closeButton, "click", () => {
div.remove();
})
this.on("start-clicked", () => {
if (this.config.adMode === 0) div.remove();
if (this.config.adMode === 1){
this.elements.parent.appendChild(div);
}
})
this.on("start", () => {
closeParent.removeAttribute("hidden");
const time = (typeof this.config.adTimer === "number" && this.config.adTimer > 0) ? this.config.adTimer : 10000;
if (this.config.adTimer === -1) div.remove();
if (this.config.adTimer === 0) return;
setTimeout(() => {
div.remove();
@ -356,6 +369,14 @@ class EmulatorJS {
})
}
adBlocked(url, del){
if (del){
document.querySelector('div[class="ejs_ad_iframe"]').remove();
}else{
document.querySelector('iframe[src="'+this.config.adUrl+'"]').src = url;
this.config.adUrl = url;
}
}
functions = {};
on(event, func) {
if (!Array.isArray(this.functions[event])) this.functions[event] = [];
@ -384,6 +405,7 @@ class EmulatorJS {
createStartButton() {
const button = this.createElement("div");
button.classList.add("ejs_start_button");
if (typeof this.config.backgroundImg === "string") button.classList.add("ejs_start_button_border");
button.innerText = this.localization("Start Game");
this.elements.parent.appendChild(button);
this.addEventListener(button, "touchstart", () => {
@ -393,8 +415,12 @@ class EmulatorJS {
if (this.config.startOnLoad === true) {
this.startButtonClicked(button);
}
setTimeout(() => {
this.callEvent("ready");
}, 20);
}
startButtonClicked(e) {
this.callEvent("start-clicked");
if (e.pointerType === "touch") {
this.touch = true;
}
@ -411,6 +437,7 @@ class EmulatorJS {
createText() {
this.textElem = this.createElement("div");
this.textElem.classList.add("ejs_loading_text");
if (typeof this.config.backgroundImg === "string") this.textElem.classList.add("ejs_loading_text_glow");
this.textElem.innerText = this.localization("Loading...");
this.elements.parent.appendChild(this.textElem);
}
@ -976,7 +1003,6 @@ class EmulatorJS {
if (this.debug) console.log(args);
this.Module.callMain(args);
this.Module.resumeMainLoop();
this.checkSupportedOpts();
this.setupSettingsMenu();
this.loadSettings();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -55,7 +55,9 @@
config.gameName = window.EJS_gameName;
config.color = window.EJS_color;
config.adUrl = window.EJS_AdUrl;
config.adMode = window.EJS_AdMode;
config.adTimer = window.EJS_AdTimer;
config.adSize = window.EJS_AdSize;
config.VirtualGamepadSettings = window.EJS_VirtualGamepadSettings;
config.buttonOpts = window.EJS_Buttons;
config.volume = window.EJS_volume;
@ -72,6 +74,8 @@
config.netplayUrl = window.EJS_netplayServer;
config.gameId = window.EJS_gameID;
config.backgroundImg = window.EJS_backgroundImage;
config.backgroundBlur = window.EJS_backgroundBlur;
config.backgroundColor = window.EJS_backgroundColor;
config.controlScheme = window.EJS_controlScheme;
if (typeof window.EJS_language === "string" && window.EJS_language !== "en-US") {
@ -90,6 +94,10 @@
}
window.EJS_emulator = new EmulatorJS(EJS_player, config);
window.EJS_adBlocked = (url, del) => window.EJS_emulator.adBlocked(url, del);
if (typeof window.EJS_ready === "function") {
window.EJS_emulator.on("ready", window.EJS_ready);
}
if (typeof window.EJS_onGameStart === "function") {
window.EJS_emulator.on("start", window.EJS_onGameStart);
}
@ -99,5 +107,4 @@
if (typeof window.EJS_onSaveState === "function") {
window.EJS_emulator.on("save", window.EJS_onSaveState);
}
})();

View file

@ -1,62 +1,62 @@
{
"Restart": "Reiniciar",
"Pause": "Pausa",
{
"Restart": "Restart",
"Pause": "Pausar",
"Play": "Jogar",
"Save State": "Estado salvo",
"Load State": "Estado de carga",
"Control Settings": "Configurações de controle",
"Cheats": "Fraudes",
"Cache Manager": "Gerenciador de Cache",
"Export Save File": "Exportar Salvar Arquivo",
"Import Save File": "Importar Salvar Arquivo",
"Netplay": "Jogo de rede",
"Save State": "Armazenar Save State",
"Load State": "Carregar Save State",
"Control Settings": "Configurações do Controle",
"Cheats": "Trapaças",
"Cache Manager": "Gerenciador de cache",
"Export Save File": "Armazenar Save State",
"Import Save File": "Carregar Save State",
"Netplay": "Netplay",
"Mute": "Mudo",
"Unmute": "Ativar som",
"Settings": "Configurações",
"Enter Fullscreen": "Entrar em tela cheia",
"Unmute": "Desmutar",
"Settings": "Ajustes",
"Enter Fullscreen": "Tela cheia",
"Exit Fullscreen": "Sair da tela cheia",
"Reset": "Reiniciar",
"Clear": "Claro",
"Reset": "Resetar",
"Clear": "Limpar",
"Close": "Fechar",
"QUICK SAVE STATE": "SALVAR ESTADO RÁPIDO",
"QUICK LOAD STATE": "ESTADO DE CARGA RÁPIDA",
"CHANGE STATE SLOT": "MUDAR ESPAÇO DE ESTADO",
"QUICK SAVE STATE": "ARMAZENAR SAVE STATE RAPIDAMENTE",
"QUICK LOAD STATE": "CARREGAR SAVE STATE RAPIDAMENTE",
"CHANGE STATE SLOT": "TROCAR SLOT DO SAVE STATE",
"FAST FORWARD": "AVANÇO RÁPIDO",
"Player": "Jogador",
"Connected Gamepad": "Gamepad conectado",
"Connected Gamepad": "Controle conectado",
"Gamepad": "Controle",
"Keyboard": "Teclado",
"Set": "Definir",
"Add Cheat": "Adicionar trapaça",
"Create a Room": "Criar uma sala",
"Rooms": "quartos",
"Start Game": "Começar o jogo",
"Loading...": "Carregando...",
"Download Game Core": "Baixe o Núcleo do Jogo",
"Decompress Game Core": "Descomprimir Núcleo do Jogo",
"Download Game Data": "Baixar dados do jogo",
"Decompress Game Data": "Descomprimir Dados do Jogo",
"Shaders": "Shaders",
"Disabled": "Desabilitado",
"Add Cheat": "Adicionar Trapaça",
"Create a Room": "Criar uma Sala",
"Rooms": "Salas",
"Start Game": "Jogar",
"Loading...": "Carregando",
"Download Game Core": "Carregando emulador do videogame",
"Decompress Game Core": "Descompactando emulador do videogame",
"Download Game Data": "Carregando dados do jogo",
"Decompress Game Data": "Descompactando dados do jogo",
"Shaders": "Sombreamento",
"Disabled": "Desativado",
"2xScaleHQ": "2xScaleHQ",
"4xScaleHQ": "4xScaleHQ",
"CRT easymode": "CRT modo fácil",
"CRT aperture": "abertura CRT",
"CRT geom": "geom CRT",
"CRT mattias": "CRT Mattias",
"CRT easymode": "CRT easymode",
"CRT aperture": "CRT aperture",
"CRT geom": "CRT geom",
"CRT mattias": "CRT mattias",
"FPS": "FPS",
"show": "mostrar",
"hide": "esconder",
"Fast Forward Ratio": "Taxa de Avanço Rápido",
"hide": "ocultar",
"Fast Forward Ratio": "Taxa de avanço rápido",
"Fast Forward": "Avanço rápido",
"Enabled": "Habilitado",
"Save State Slot": "Salvar Slot de Estado",
"Save State Location": "Salvar localização do estado",
"Enabled": "Ativado",
"Save State Slot": "Slot do Save State",
"Save State Location": "Local do Save State",
"Download": "Download",
"Keep in Browser": "Manter no navegador",
"Keep in Browser": "Manter no Browser",
"Auto": "Auto",
"NTSC": "NTSC",
"PAL": "AMIGO",
"PAL": "PAL",
"Dendy": "Dendy",
"8:7 PAR": "8:7 PAR",
"4:3": "4:3",
@ -67,54 +67,107 @@
"Player 1": "Jogador 1",
"Player 2": "Jogador 2",
"Both": "Ambos",
"SAVED STATE TO SLOT": "ESTADO SALVO NO ESPAÇO",
"LOADED STATE FROM SLOT": "ESTADO CARREGADO DO SLOT",
"SET SAVE STATE SLOT TO": "CONFIGURAR SALVAR ESTADO DE SALVAR PARA",
"SAVED STATE TO SLOT": "SAVE STATE ARMAZENDO NO SLOT",
"LOADED STATE FROM SLOT": "SAVE STATE CARREGADO DO SLOT",
"SET SAVE STATE SLOT TO": "SAVE STATE DEFINIDO PARA SLOT",
"Network Error": "Erro de rede",
"Submit": "Enviar",
"Description": "Descrição",
"Code": "Código",
"Add Cheat Code": "Adicionar código de trapaça",
"Add Cheat Code": "Adicionar trapaça",
"Leave Room": "Sair da sala",
"Password": "Senha",
"Password (optional)": "Senha (opcional)",
"Max Players": "Máximo de jogadores",
"Room Name": "Nome da sala",
"Join": "Juntar",
"Player Name": "Nome do jogador",
"Set Player Name": "Definir nome do jogador",
"Max Players": "-Max de Jogadores",
"Room Name": "Nome da Sala",
"Join": "Entrar",
"Player Name": "Nome do Jogador",
"Set Player Name": "Definir nome do Jogador",
"Left Handed Mode": "Modo canhoto",
"Virtual Gamepad": "Gamepad virtual",
"Virtual Gamepad": "Controle virtual",
"Disk": "Disco",
"Press Keyboard": "Pressione Teclado",
"INSERT COIN": "INSIRA MOEDA",
"Press Keyboard": "Pressione uma tecla",
"INSERT COIN": "Insira uma ficha",
"Remove": "Remover",
"SAVE LOADED FROM BROWSER": "SALVAR CARREGADO DO NAVEGADOR",
"SAVE SAVED TO BROWSER": "SALVAR SALVO NO NAVEGADOR",
"Join the discord": "Junte-se à discórdia",
"SAVE LOADED FROM BROWSER": "SAVE STATE CARREGADO DO BROWSER",
"SAVE SAVED TO BROWSER": "SAVE STATE ARMAZENADO NO BROWSER",
"Join the discord": "Participar do discord",
"View on GitHub": "Ver no GitHub",
"Failed to start game": "Falha ao iniciar o jogo",
"Download Game BIOS": "Baixar BIOS do jogo",
"Decompress Game BIOS": "Descompactar o BIOS do jogo",
"Download Game Parent": "Baixe o pai do jogo",
"Decompress Game Parent": "Descompactar o pai do jogo",
"Download Game Patch": "Baixe o patch do jogo",
"Decompress Game Patch": "Descompactar patch do jogo",
"Download Game State": "Baixar estado do jogo",
"Check console": "Verifique o console",
"Error for site owner": "Erro para o proprietário do site",
"EmulatorJS": "EmuladorJS",
"Clear All": "Limpar tudo",
"Take Screenshot": "Tirar captura de tela",
"Quick Save": "Salvamento rapido",
"Quick Load": "Carga rápida",
"REWIND": "REBOBINAR",
"Rewind Enabled (requires restart)": "Retrocesso ativado (requer reinicialização)",
"Rewind Granularity": "Rebobinar granularidade",
"Slow Motion Ratio": "Taxa de câmera lenta",
"Slow Motion": "Câmera lenta",
"Home": "Lar",
"EmulatorJS License": "Licença EmulatorJS",
"RetroArch License": "Licença RetroArch",
"SLOW MOTION": "CÂMERA LENTA"
}
"Download Game BIOS": "Carregando bios do videogame",
"Decompress Game BIOS": "Descompactando bios do videogame",
"Download Game Parent": "Carregando arquivo principal do jogo",
"Decompress Game Parent": "Descompactando arquivo principal do jogo",
"Download Game Patch": "Carregando Patch do jogo",
"Decompress Game Patch": "Descompactando Patch do Jogo",
"Download Game State": "Carregando Save State",
"Check console": "Verificar videogame",
"Error for site owner": "Erro para proprietário do site",
"EmulatorJS": "EmulatorJS",
"Clear All": "Limpar todos",
"Take Screenshot": "Capturar tela",
"Quick Save": "Salvar rapidamente",
"Quick Load": "Carregar Rapidmente",
"REWIND": "RETROCEDER",
"Rewind Enabled (requires restart)": "Camera lenta ativada(Necessário reiniciar)",
"Rewind Granularity": "Granularidade do retrocesso",
"Slow Motion Ratio": "Taxa de camera lenta",
"Slow Motion": "Camera lenta",
"Home": "Ínicio",
"EmulatorJS License": "Licença do EmulatorJS",
"RetroArch License": "Licença do RetroArch",
"SLOW MOTION": "CAMERA LENTA",
"genesis plus gx frameskip threshold": "genesis plus gx - limite de pulo de quadros",
"genesis plus gx lowpass range": "genesis plus gx - alcance do passa-baixa",
"genesis plus gx psg preamp": "genesis plus gx - psg pré-amplificador",
"genesis plus gx fm preamp": "genesis plus gx - pré-amplificador fm",
"genesis plus gx cdda volume": "genesis plus gx - cdda volume",
"genesis plus gx pcm volume": "genesis plus gx - pcm volume",
"genesis plus gx audio eq low": "genesis plus gx - eq áudio baixo",
"genesis plus gx audio eq mid": "genesis plus gx - eq áudio medio",
"genesis plus gx audio eq high": "genesis plus gx - eq áudio alto",
"genesis plus gx enhanced vscroll limit": "genesis plus gx - limite de rolagem vertical aprimorada",
"genesis plus gx psg channel 0 volume": "genesis plus gx - psg channel 0 volume",
"genesis plus gx psg channel 1 volume": "genesis plus gx - psg channel 1 volume",
"genesis plus gx psg channel 2 volume": "genesis plus gx - psg channel 2 volume",
"genesis plus gx psg channel 3 volume": "genesis plus gx - psg channel 3 volume",
"genesis plus gx md channel 0 volume": "genesis plus gx - md channel 0 volume",
"genesis plus gx md channel 1 volume": "genesis plus gx - md channel 1 volume",
"genesis plus gx md channel 2 volume": "genesis plus gx - md channel 2 volume",
"genesis plus gx md channel 3 volume": "genesis plus gx - md channel 3 volume",
"genesis plus gx md channel 4 volume": "genesis plus gx - md channel 4 volume",
"genesis plus gx md channel 5 volume": "genesis plus gx - md channel 5 volume",
"genesis plus gx sms fm channel 0 volume": "genesis plus gx - sms fm channel 0 volume",
"genesis plus gx sms fm channel 1 volume": "genesis plus gx - sms fm channel 1 volume",
"genesis plus gx sms fm channel 2 volume": "genesis plus gx - sms fm channel 2 volume",
"genesis plus gx sms fm channel 3 volume": "genesis plus gx - sms fm channel 3 volume",
"genesis plus gx sms fm channel 4 volume": "genesis plus gx - sms fm channel 4 volume",
"genesis plus gx sms fm channel 5 volume": "genesis plus gx - sms fm channel 5 volume",
"genesis plus gx sms fm channel 6 volume": "genesis plus gx - sms fm channel 6 volume",
"genesis plus gx sms fm channel 7 volume": "genesis plus gx - sms fm channel 7 volume",
"genesis plus gx sms fm channel 8 volume": "genesis plus gx - sms fm channel 8 volume",
"stella2014 stelladaptor analog sensitivity": "stella2014 - Sensibilidade do Analógico",
"stella2014 stelladaptor analog center": "stella2014 - Centro do Analógico",
"1.0x (12.50Mhz)": "1.0x (12.50Mhz)",
"1.1x (13.75Mhz)": "1.1x (13.75Mhz)",
"1.2x (15.00Mhz)": "1.2x (15.00Mhz)",
"1.5x (18.75Mhz)": "1.5x (18.75Mhz)",
"1.6x (20.00Mhz)": "1.6x (20.00Mhz)",
"1.8x (22.50Mhz)": "1.8x (22.50Mhz)",
"2.0x (25.00Mhz)": "2.0x (25.00Mhz)",
"opera cpu overclock": "Overclock do cpu Opera",
"0RGB1555": "0RGB1555",
"RGB565": "RGB565",
"XRGB8888": "XRGB8888",
"opera vdlp pixel format": "Formato vdlp do pixel Opera",
"opera nvram version": "Versão da nvram do Opera",
"opera active devices": "Dispositivos Opera ativados",
"pcsx rearmed psxclock": "pcsx rearmed - psxclock",
"pcsx rearmed frameskip threshold": "pcsx rearmed - limite de pulo de quadros",
"pcsx rearmed frameskip interval": "pcsx rearmed - intervalo de pulo de quadros",
"pcsx rearmed input sensitivity": "pcsx rearmed - sensibilidade de entrada",
"pcsx rearmed gunconadjustx": "pcsx rearmed - gunconadjustx",
"pcsx rearmed gunconadjusty": "pcsx rearmed - gunconadjusty",
"pcsx rearmed gunconadjustratiox": "pcsx rearmed - gunconadjustratiox",
"pcsx rearmed gunconadjustratioy": "pcsx rearmed - gunconadjustratioy"
}

View file

@ -31,10 +31,10 @@ If the language file is not found or there was an error fetching the file, the e
## Credits
Translated for `pt-BR` by [@cesarcristianodeoliveira](https://github.com/cesarcristianodeoliveira) <br>
Translated for `es-ES` by [@cesarcristianodeoliveira](https://github.com/cesarcristianodeoliveira) <br>
Translated for `el-GR` by [@imneckro](https://github.com/imneckro) <br>
Translated for `ja-JA`, `hi-HI`, `ar-AR`, `jv-JV`, `ben-BEN`, `ru-RU`, `de-GER`, `ko-KO`, `af-FR` by [@allancoding](https://github.com/allancoding) <br>
Translated for `pt-BR` originally by [@allancoding](https://github.com/allancoding) and updated by [@zmarteline](https://github.com/zmarteline)<br>
Translated for `zh-CN` originally by [@allancoding](https://github.com/allancoding) and updated by [@eric183](https://github.com/eric183)<br>
## Contributing

View file

@ -161,25 +161,42 @@
div.appendChild(sub)
document.body.appendChild(div)
window.EJS_player = "#game"
window.EJS_gameName = parts.shift()
window.EJS_biosUrl = ""
window.EJS_gameUrl = url
window.EJS_core = core
window.EJS_pathtodata = "data/"
window.EJS_player = "#game";
window.EJS_gameName = parts.shift();
window.EJS_biosUrl = "";
window.EJS_gameUrl = url;
window.EJS_core = core;
window.EJS_pathtodata = "data/";
window.EJS_startOnLoaded = true;
if (window.location.hostname === "demo.emulatorjs.org") {
window.EJS_AdUrl = "https://ads.emulatorjs.org/";
window.EJS_ready = function() {
detectAdBlock("https://ads.emulatorjs.org/?blocked");
}
}
script.src = "data/loader.js"
document.body.appendChild(script)
script.src = "data/loader.js";
document.body.appendChild(script);
}
box.ondragover = () => box.setAttribute("drag", true)
box.ondragleave = () => box.removeAttribute("drag")
async function detectAdBlock(url) {
let adBlockEnabled = false
const googleAdUrl = 'https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js'
try {
await fetch(new Request(googleAdUrl)).catch(_ => adBlockEnabled = true)
} catch (e) {
adBlockEnabled = true
} finally {
window.EJS_ready = function() {
if (adBlockEnabled) {
window.EJS_adBlocked("https://emulatorjs.org/?blocked");
}
}
}
}
box.ondragover = () => box.setAttribute("drag", true);
box.ondragleave = () => box.removeAttribute("drag");
</script>
</body>
</html>