#retroArch

:sigil: Lou Lüederlou_de_sel@eldritch.cafe
2025-06-10

– C'est facile à installer un vieux jeu ?
– Oui de ouf tu veux que je te l'installe ? Ça va prendre 5 minutes.
*One eternity later…*

Télécharger Emulation Station et RetroArch, chercher pourquoi l'AppImage de ES s'ouvre pas dans Gearlever, trouver que la dernière version de Gearlever est cassée, chercher comment downgrader un flatpak, lancer ES, comprendre pourquoi il y a un message d'erreur au lancement du jeu, télécharger le cœur de l'emulateur qu'on veut dans RetroArch, configurer RetroArch pour qu'il se lance en plein écran avec une mise à l'échelle correcte, ajouter ES à Steam, comprendre pourquoi maintenant il se lance plus, chercher les logs, trouver le message d'erreur, Steam est installé en flatpak et on peut pas lancer d'AppImage dans un flatpak, laisser tomber l'ajout dans Steam, lancer ES depuis le menu démarrer, ça marche.

– C'est bizarre, elles sont un peu longues tes 5 minutes.

#EmulationStation #RetroArch #Emulation #Steam #Flatpak #AppImage #Emulation #Linux

2025-06-08

Tiens, les retroachievements ne fonctionnent plus sous Retroarch ? 🤔

Retroachievements in Retrocarch doesn't work anymore ? 🤔

#retroarch #retroachievements #retrogaming 👾

Perpetuum Mobilerox_lukas@cmdr.social
2025-06-07

My favourite Android apps btw
#retrogaming #retroarch #winlator #dosbox

Tudo Sobre Filtros & Imagem (MD)

Caso queira ir direto ao ponto, clique aqui, mas primeiro deixa eu introduzir alguns conceitos importantes para uma aparência autêntica dos jogos antigos, especialmente os de Mega Drive. Peço que me corrijam nos comentários se eu falar alguma coisa errônea, tudo isso é muito complicado e muito disso não é bem documentado. E comente abaixo qual sua configuração de filtros!

Os aparelhos daquela época eram feitos para ser usados na configuração possível, com os aparelho e conexões disponíveis naquela era tecnológica. E o que existia eram cabos compostos, componentes e S-video e TVs de tubo. Foi com estes dispositivos que o Mega Drive foi projetado para interagir. E é este tipo de coisa que os filtros dos emuladores atuais tentam imitar nas suas telas, monitores ou TVs planos e finos de LCD ou LED. Na verdade estou chamando de filtros mas a palavra original é shaders e o RetroArch traduzido chama de Sombreadores, que é uma tradução literal. Vou continuar chamando de filtros.

Então se faz necessário entender como funcionava uma TV de tubo. Mas antes vamos ver o que o videogame enviava para a TV. Como se sabe, as imagens dos jogos são feitas de pixels (clique aqui para saber mais sobre tudo isso). A informação que o Mega envia para a TV são combinações de três cores e suas luminescências que geram em cada ponto um pixel de uma cor específica. A depender do tipo de cabo, essa informação pode ir tudo junto, como no cabo RF que inclusive envia a informação sonora junto; ou o cabo AV que separa a sonora mas envia toda a informação de vídeo em um cabo. Enviar informações juntas faz com que elas interfiram umas nas outras, gerando interferência e queda de qualidade. Para isso, existem cabos como o componente, que separa os sinais em cabos únicos.

Mas pixels são muito pequenos, então a resolução mais comum do Mega, 320 pixels de largura por 240 de altura, gera uma imagem muito pequena, vide abaixo.

Logo, há uma discrepância, a imagem não preencheria a tela inteira. Aconteceu que ao contrário de uma TV atual, que mostra pixels com exatidão, as TVs de tubo, ou CRTs, não. Elas esticam os pixels, gerando pixels não exatamente quadrados. Isso pode gerar distorções, mas no caso do Mega é muito sutil, já que a proporção entre altura e largura da resolução de saída do Mega é muito próxima da proporção de uma TV. Já o Super Nintendo, por exemplo, na maioria das vezes usava uma resolução de 256 x 224 que podia gerar distorções perceptíveis, o mais perceptível sendo círculos se tornando ovais.

Mas o Mega também tem alguns jogos com essa proporção, clique aqui para uma lista destes.

As TVs de tubo montam as imagens em tiras horizontais feitas da esquerda para a direita de cima para baixo. Por isso, os videogames também montam as imagens em linhas, as scanlines. Os criadores de filtros e emuladores tendem a chamar de scanlines as tiras pretas, que podem ser visíveis se você tirar uma foto ou gravar um vídeo de uma TV de tubo usando seu celular, mas na verdade as scanlines formam a área visível. Então o que são as tiras pretas?, você se pergunta. Os videogames antigos criavam imagens não entrelaçadas (non-interlaced). O que isso significa é que apenas metade das scanlines era desenhada. Era feito de modo alternado, linha sim, linha não. E essas linhas não desenhadas, que o olho humano mescla com as linhas visíveis, podem ser percebidas por filmagens de câmeras. Isso ajudava os videogames daquela época em que a tecnologia ainda estava em um nível relativamente preliminar, já que eles só tinham que renderizar e enviar metade do que está na tela. Isso tinha um efeito incidental de escurecer a tela, fora isso era invisível a certa distância da TV.

Mas você deve estar se perguntando como a TV estica os pixels. Isso é por que uma TV de tubo não tem pixels, os pixels para ela são apenas virtuais. A pixel art como a conhecemos hoje em dia, não existia, é uma invenção moderna. Os jogos eram feitos para que sua arte fosse mesclada para parecer um desenho, não era como nos jogos 2D atuais feitos para os pixels serem notados.

As TVs conseguem criar imagens para nós estimulando as células dos nossos olhos, que são incapazes de diferenciar as unidades individuais das cores que formam um pixel, e vê tudo como um único pixel de cor intermediária entre as três. Como uma TV de tubo funciona é que há uma camada com pontos de fósforo na TV. Atrás deles há uma camada com furos. Os pontos estão divididos em grupos de três, cada um com um furo na camada atrás. No fundo do tubo há três raios que lançam elétrons que, ao atingir os pontos, causa que eles se iluminem a depender da quantidade de energia do laser, cada raio correspondendo a uma de três cores: vermelho, azul e verde. E a camada com furos impede que as cores se misturem, apesar de um pouco de mistura acontecer, o chamado color bleeding. Mas o lançador do raio não se move. Há barras magnéticas nas laterais da arma de laser que usam de magnetismo para guiar a direção dos raios lançados para o local desejado, e é por isso que as imagens são feitas em scanlines.

Veja o excelente vídeo abaixo sobre isso (em inglês). Eu sugiro usar a tradução automática do YouTube. Aos 7:27 do vídeo, ele dá uma demonstração usando lanternas de três cores de como seria mais ou menos o funcionamento de uma TV de tubo.

https://www.youtube.com/watch?v=Ea6tw-gulnQ&list=WL&index=9&pp=gAQBiAQB

bobinas

O site Nationalmaglab provém essa animação acima que ajuda a entender (é de uma TV preto e branco). Mas é preciso ter em mente que o imã é metafórico, o que define a trajetória dos elétrons são campos magnéticos emitidos por bobinas em volta da arma de laser com o controle da corrente elétrica que os perpassa definindo sua intensidade e a trajetória que isso forçará nos elétrons. Cada passada de cima a baixo cria uma unidade do que chamamos de frame, que seria uma imagem de tela inteira. Entre um frame e outro, até que esteja organizado para o próximo frame existe o período chamado de vblank e entre uma linha e outra chamamos de hblank. O Mega Drive produzia 60 dessas imagens por segundo, por isso dizemos que seus jogos rodam a uma taxa de 60 frames por segundo. É o mesmo número de taxa de atualização das TVs da época (60 Hz). Abaixo, 6 frames e a imagem animada que eles criam.

Hoje em dia, entretanto, monitores e TVs podem ter taxas de atualização mais altas que isso, o que pode causar o chamado screen tearing, que ocorre quando a TV emite imagem de múltiplos frames de uma vez. Algumas placas de vídeo e TVs modernas possuem a tecnologia chamada adaptive sync, são capazes de adaptar a taxa de atualização da tela à do conteúdo sendo transmitido a ela. E emuladores como o RetroArch tem suporte a esta tecnologia.

Outra taxa relevante é a de atualização horizontal, ou kHz, que conta quão rápido a tela se atualiza da esquerda para a direita a cada linha (era de cerca de 15,6 kHz nas tubões e 31 kHz nos monitores CRT) e é utilizado pelo método SwitchRes do qual falaremos posteriormente.

TVs de tubo diferem entre si em vários fatores, um deles sendo o tipo de máscara. A camada com furos entre a tela com pontos de fósforo e o canhão laser pode tomar diversos formatos, que influenciavam como a imagem aparecia na TV. Temos três que eram mais comuns.

  • máscara de fenda (slot mask)
  • máscara de abertura grelha (aperture grille mask)
  • máscara de sombra (shadow mask)

Os emuladores tem que ter tudo isto em conta na hora de criar suas imagens. Outro fator é o chamado overscan. As TVs de tubo tinham uma área em que o vidro se dobra nas laterais que a parte de plástico da TV esconde e onde era possível desenhar imagens. Isso significa que parte da imagem do jogo ficaria escondida. Para ficar pior, havia pequenas diferenças no tamanho dessa área a depender do modelo da TV. Por isso os desenvolvedores designavam uma área de overscan nas laterais além da tela do jogo, onde não colocavam nada importante, costumeiramente apenas a cor de fundo. Ao não fazer com que elementos de jogo atravessem essa área, os desenvolvedores garantiam que nada na tela ficasse escondido pelas bordas da televisão. Os emuladores atuais costumam ter uma opção de cortar automaticamente essa área, ou permitir que seja mostrada, mas não existe motivo para exibir esta área.

Como já foi explicado, as TVs de tubo não produzem pixels exatos, e também não produzem a imagem inteira, apenas metade dela. Mas as LEDs e LCDs não funcionam assim. Elas exibem exatamente o que é enviado a ela, cada pixel, cada linha. Vá no emulador Kega Fusion, por exemplo e, em Video, Tamanho da janela, selecione 1x. Você verá o tamanho realmente emitido pelo videogame. Uma tela bem pequena, não? O emulador tem então que ‘esticar’ esta imagem para preencher a tela toda, sem as características de uma tela de tubo. Mas as telas planas não tem a capacidade de esticar pixels, então o que fazer? Existem várias opções possíveis. Elas funcionam através de um método chamado interpolação, que cria novos pixels para aumentar a imagem. Veja abaixo um exemplo de uma imagem com quatro pixels sendo dobrada para um tamanho de 16 pixels por nearest neighbor.

O modo mais popular de fazer isso é com integer scaling, ou escala inteira. Se trata de multiplicar a resolução em ambos os eixos por números inteiros (sem vírgula), gerando uma imagem de resolução maior mas com a mesma proporção. Isso pode gerar uma imagem que não preenche a tela inteira, dependendo da resolução da sua tela, mas gera uma imagem maior, quase em tela cheia.

shimmering

Obviamente que pixels novos precisam ser criados, e um algoritmo cria pixels com a mesma cor ao lado dos pixels originais. O método base usado pelos emuladores é o nearest neighbor ou vizinho mais próximo, que calcula a cor dos pixels adicionados com base em um pixel de adjacência, como na imagem acima. Mas isso gera um problema quando se movimenta. O algoritmo tem que estar constantemente decidindo onde adicionar pixels na imagem, e quando se movimenta pode ficar aparente a criação desses pixels, gerando um efeito de tremulação dos pixels.

Note abaixo o que pode acontecer quando se usa ou não escala inteira. Com a escala inteira, os pixels ficam balanceados (note os espaços entre as linhas amarelas na barra de vida), mas não preenche a tela inteira (note as barras pretas em volta da imagem). Com a escala não-integral ou não-inteira, pixels ficam desbalanceados (notável facilmente pela barra de vida), mas preenche mais da tela.

  • escala inteira
  • escala não-inteira

Outro método popular é a interpolação bilinear, que cria pixels, mas os colore de uma cor intermediária entre os pixels adjacentes. Este método requer mais poder de processamento que o anterior, por levar em consideração dois pixels próximos ao invés de apenas um. Isso acaba com o shimmering de pixels, mas faz com que a imagem tenha um aspecto embaçado. Ainda assim é provavelmente mais fiel ao que uma TV de tubo exibia, já que se assemelha ao alongamento de ‘pixels’ causado por TVs CRT. Por que as TVs atuais não tem a capacidade de criar meios pixels ou pixels de tamanhos diferentes, como acabava acontecendo em um tubo. Então ao aumentar o tamanho de uma imagem, pixels que em um tubo teriam tamanho de 1,33 só poderão ter 2 pixels, gerando uma distorção na imagem. Criar um pixel intermediário que não é nem um nem outro mas uma junção dos dois, com coloração que é uma mistura dos dois adjacentes, é um método que tenta se aproximar dessa característica das tubões. Uma opção ainda mais avançada é a interpolação bicubica, que leva em consideração 16 pixels.

O vídeo abaixo fala de escala integral ou inteira, ele está em inglês mas basta usar a tradução automática.

https://www.youtube.com/watch?v=ZsYJZjH8Lo8&list=WL&index=12&pp=gAQBiAQB

E o motivo de não exibir em tela cheia é um problema com a multiplicação da resolução. Como precisa ser números inteiros, já que monitores modernos são incapazes de produzir pixels de tamanhos diferentes ou mesmo meios-pixels, se a resolução vertical de sua tela for 1080, por exemplo, não existe nenhum número inteiro para multiplicar. 240 x 5 = 1200, que é maior que 1080, mas 240 x 4 = 960, que é menor.

Um outro problema que pode ser causado por todos estes fatores é input lag. Por exemplo para conectar um aparelho antigo em uma TV atual, seria necessário um aparelho upscaler como o Framemeister, que usa algum método para aumentar a resolução da imagem para a de uma TV atual, já que a resolução dos videogames era tão baixa que está abaixo do suportado pelas TVs atuais. Mas este processo não é exatamente instantâneo, os upscalers não tem o poder de processamento de um PC de última geração, então acaba gerando um atraso entre o pressionar de um botão no controle e a visualização da ação na tela. Não é algo muito grande, mas sente como um jogo menos responsivo. Emuladores tem menos deste problema, rodando em PCs, que tem poder de processamento maior, mas ainda assim é um processamento a mais que precisa ser feito e isso ajuda na fama das CRTs como o jeito ideal de jogar jogos antigos. Elas escalonam as imagens naturalmente, sem necessidade de algoritmos e processamento, e portanto não tem nenhum input lag. Opções como o run ahead tentam auxiliar com isso. Esta função usa um algoritmo para calcular os possíveis frames que podem vir após o atual e deixar todos preparados para quando a ação acontecer, diminuindo o tempo entre o pressionar de uma tecla e a ocorrência de algo na tela.

Outra vantagem das CRTs é que como a imagem é criada por pulsos ultrarrápidos a cada 16 milissegundos mais ou menos, nossos olhos veem como duas imagens diferentes. O que isso previne é que nossos olhos façam interpolação (misturemos as duas imagens) causando o motion blur, ghosting ou borrão de movimento. Monitores modernos tem um método de “amostra e retenção” (sample & hold) que simplesmente segura o pixel do frame na tela até o próximo frame, enquanto nos CRTs os fósforos levavam um tempo para irem apagando (que o filtro beam simulation falado mais abaixo tenta simular). Para evitar o borrão emuladores atuais usam uma função chamada black frame insertion, que insere frames pretos entre os frames com imagens para ajudar nossos olhos. No site UFO Test tem um teste demonstrando a redução de motion blur com black frame insertion (clique aqui). Note como o UFO com BFI parece mais nítido. Tenha em mente que o flickering abaixo é exagerado por motivos de demonstração.

Encontrei uma polêmica complexa envolvendo o PAR ou Pixel Aspect Ratio, que é a proporção entre altura e largura de cada pixel, ou seja, quanto ele é efetivamente quadrado ou não. Essa controvérsia envolve também o clock do pixel, ou quão rápido um Mega Drive consegue enviar um pixel para a tela através de um cabo. É isso que define o PAR e, em consequência, o DAR (display aspect ratio) que é o tamanho da imagem total a ser escalonada. Nesse caso o PAR é medido a partir do dot clock, dot pitch ou pixel pitch, que é a distância entre os centros dos ‘pixels’ na TV. Como uma TV de tubo não tem pixels reais, a distância entre um pixel virtual e outro é o tamanho que um pixel pode ter, e isso determina também o DAR. Por este método a saída do MD deveria ser colocada em 299×224 com área de overscan removida. O vídeo abaixo (em inglês) fala sobre isso:

https://www.youtube.com/watch?v=2owtAwcysQI&t=84s

Você pode ver também o vídeo abaixo, bem informativo e nativamente em português. O vídeo é para o SNES mas ajuda a entender os conceitos apresentados acima.

https://www.youtube.com/watch?v=9GpX3MXBg_4&pp=ygUlY29zbWljIGVmZmVjdCBwZXJmZWN0IHBpeGVsIHJldHJvYXJjaA%3D%3D

Agora se você tiver uma TV de tubo e conectar um emulador a ela, irá se deparar com outro problema. A saída do seu PC provavelmente terá uma resolução bem maior do que aquela original de um Mega Drive. E geralmente os drivers de placas de vídeo não tem suporte a resoluções tão baixas ou não facilitam o processo. Mas os emuladores atuais já dão conta disso, sendo capazes de alterar a resolução de saída através da função SwitchRes.

Falando dos filtros de imagem propriamente ditos, um tipo de filtro muito relevante para o Mega Drive especificamente são filtros contra dithering. O Mega Drive não possuía hardware para fazer transparência “real”. Quando o Super Nintendo surgiu com capacidades de fazer alpha blending e paleta de 256 cores em tela de um total de 32.768 possíveis contra 61 cores de uma paleta de 521 no Mega, o MD teve que se usar de todas as técnicas possíveis para tentar se igualar. Tenha em mente que as imagens desses consoles são construídas por camadas. Alpha blending consiste em fazer uma conta de subtração entre a cor da camada que está na frente e a da camada que está ao fundo e modificar a cor da camada da frente para a cor resultante dessa subtração, dando a impressão de que está ‘dando pra ver através do objeto da frente’. Dithering se utiliza do embaçamento da imagem causado por sinais como cabo AV, que mistura pixeis adjacentes, causando uma espécie de alpha blending falso (quando o pixel adjacente está vazio) ou colorações a mais.

CONFIGURAÇÃO DA RESOLUÇÃO

Agora vamos à parte que importa. Para começar a configuração do emulador, pode ser útil primeiro saber a resolução de saída da sua placa de vídeo. Para isso, clique com o botão direito na área de trabalho. A opção que te mostra essa informação pode variar de placa para placa, então procure, mas vou mostrar onde é no meu PC. Eu tive que ir em Configurações de exibição e a informação estava em Resolução de tela. No caso, a minha é 1280 por 1024.

De posse da informação acima, o primeiro passo é definir o tamanho que a imagem terá. Essa parte é importante, e todo o resto depende dela. Há várias maneiras diferentes de lidar com isso. E eu vou ensinar como fazer isso primeiramente no RetroArch, que é o emulador mais flexível em termos de customização. Primeiramente, abra o RetroArch, vá em Carregar núcleo e carregue o seu núcleo de Mega Drive, no meu caso estarei usando o Genesis Plus GX.

Vá em Configurações, Vídeo e Escala. Para ligar o integer scaling mencionado mais acima, basta clicar em “Dimensionar com valores inteiros” para colocar em “Ligado”. Isso irá travar o escalonamento da imagem a valores inteiros e proporcionais.

Em Proporção de tela, estão algumas opções pré-definidas que você pode usar, como 4:3 por exemplo, que era a proporção das TVs de tubo. Também existe a opção “Fornecida pelo núcleo” para usar o que os criadores do núcleo definiram, que no caso do Genesis Plus GX é 4:3, esticando a imagem por nearest neighbor. A opção 16:9 estica mais a tela como se fosse widescreen, é a resolução mais comum das telas atuais. O Genesis Plus GX Wide é um núcleo específico para MD em widescreen. O Meduza Team inclusive produz hacks para melhorar a experiência wide (aqui) para uso com este núcleo. A opção Personalizado permite que você coloque o número que você quiser e é por aqui que iremos começar.

O Mega Drive com codificação PAL das regiões europeia e asiática tem resolução maior que o americano. Na verdade é o PAL que tem resolução de 320×240, o americano NTSC e consequentemente o brasileiro PAL-M tem resolução de 320 x 224 no modo de resolução maior ou 256 x 224 no menor. Como a maioria dos jogos não usa a resolução extra do PAL, faz mais sentido usar a resolução NTSC. Saiba mais sobre isso clicando aqui, lembrando que jogos lançados apenas em regiões europeias foram otimizados para PAL e nesse caso pode ser benéfico calcular para a resolução total de 320 x 240. Existem também hacks para jogos NTSC rodarem bem em consoles PAL (clique aqui) mas não parece que afetam a resolução.

Utilizando o método de PAR para o meu monitor com 1280 por 1024 pixels, multiplico o menor dos dois tamanhos (224) por valores inteiros até descobrir o ideal. Se eu multiplicar por 5, dará 1120, que é maior do que 1024. Mas se eu multiplicar por 4, terei 896, que cabe em 1024. Partindo disso, posso multiplicar 299 pelo mesmo número, ou seja, por 4, tendo 1196. Sendo assim, por este método a resolução que devo colocar é 1196 de largura por 896 de altura. Lembre de desligar o dimensionamento por valores inteiros para poder customizar a vontade estes números. Este método não preenche a tela toda, e é melhor para placas com suporte a resoluções maiores, por que aí a resolução definida ocupará uma área maior.

Para utilizar manualmente o método antigo mais simples, levando em consideração apenas o DAR, configure de acordo com a resolução do jogo, 320 x 240 ou 256 x 224, basta calcular multiplicações do número menor de acordo com a resolução da sua tela. Para o meu com resolução de altura de 1024, terei que multiplicar por 4 e usar a resolução 1280 x 960 para jogos com resolução original de 320 x 240; e 1024 x 896 para jogos que tinham 256 x 224 como resolução.

Um outro método ainda é usar múltiplos diferentes. Minha resolução não me permitirá mostrar isso, então vamos usar uma hipotética mas comum resolução de 1080p, ou seja 1920 x 1080. Nesse caso, você pode multiplicar 320 por 5 e 240 por 4, por exemplo, tendo como resolução-alvo 1600 x 960. É um método menos fiel, mas não tanto. Dividindo 1600 por 960 teremos o PAR, que é de 1,66. O PAR do Mega Drive era de 1,33, então temos uma divergência de 0,33 apenas.

Ou você pode simplesmente marcar para deixar o núcleo decidir, que é o método mais fácil e prático. Se fizer isso, pode definir o método usado pelo núcleo no menu rápido (F1), Configurações do núcleo, Vídeo e Proporção de tela do vídeo.

Ali em Vídeo também tem a opção Bordas, que define se o overscan será ou não exibido.

Lembre-se, ao fechar o RetroArch, de clicar em Sair, que é a última opção do Menu principal, para garantir que as configurações sejam salvas.

Independente do que você fizer aqui, você pode fazer este próximo passo. Carregue um jogo no RetroArch e entre no Menu rápido. Vá em Sombreadores e carregue um shader de interpolation como o sharp bilinear (veja como mais abaixo). Isto irá cessar o shimmering de sprites ao fazer com que os sprites criados pelo escalonamento tenham cores intermediárias entre as duas vizinhas. Isso também tem o efeito colateral de embaçar a imagem.

É sugerido que, caso aplique múltiplos filtros, este seja o primeiro a ser aplicado.

Em relação aos outros emuladores: o Kega Fusion só permite três tipos de escalonamento, 1x (o tamanho original de saída do jogo), 2x (aumentado em 2x) e full screen (aumentado para preencher a tela toda); o BlastEm tem a opção de escala integral (integer scaling) em Settings, Video, e também permite definir tamanhos exatos para as áreas de overscan no topo (top), embaixo (bottom) e nas laterais esquerda (left) e direita (right) da tela; o Ares tem opções de método de escalonamento em Settings, Output. Em Settings, Size, dá pra definir em quantas vezes será escalonado. Em Settings, Video, pode-se marcar para exibir o overscan, caso deseje.

O BizHawk, por sua vez, tem as opções em Config, Display, na aba Scaling & Filtering. Ali em Aspect Ratio Selection você pode usar a recomendação do sistema (marcado na imagem abaixo), usar um número personalizado (use custom size). Marque Expand pixels by integers only para não multiplicar por números quebrados. Defina números de pixels em Cropping para esquerda, topo, direita e embaixo respectivamente, para definir corte de overscan. Em Final Filter tem opções marcáveis para filtro de interpolação. Para mudanças rápidas, com o jogo rodando, em View, Window Size, você pode mudar o tamanho da tela de jogo.

No Android, a configuração do RetroArch é igual à de PC. No MDEmu, vá a Options, Video, Aspect Ratio. No Lemuroid, há apenas a opção overscan. Para ativá-la, com o jogo rodando, entre nas Configurações e, em Bordas, selecione a opção desejada.

Depois disso preparado, podemos partir para os filtros propriamente ditos.

FILTROS PROPRIAMENTE DITOS

Tipos de Filtros

Mas primeiramente, precisamos falar dos diferentes tipos de filtros suportados pelos emuladores. Os formatos possíveis são glsl, slang, cg e rpi, sendo que combinações pré-definidas de filtros adicionam um p ao final, ficando glslp, slangp e cgp. O Ares te dá acesso a muitos filtros de imagem no formato slang (com o driver OpenGL); Bizhawk usa o formato cgp, Kega Fusion é o único a usar rpi, o BlastEm  usa o formato f.glsl e o RetroArch suporta glsl e slang. O RetroArch também suporta outro tipo de filtros, de formato filt. No Android, a adição manual de filtros é desencorajada, sendo limitados aos providos pelos próprios emuladores, devido a restrições do próprio Android. No Mac, o OpenEmu tem suporte ao formato cg, com slangp a caminho.

Os filtros do tipo CG são um formato velho e defasado, os GLSL são para OpenGL e tem suporte a uma variedade de plataformas, incluindo mobile, já o Slang é o formato mais moderno e recomendado, compatível com muitos drivers (Direct3d, OpenGL…) inclusive o novo Vulkan.

Se tipificarmos por função, temos primeiramente filtros contra dithering, que usam um algoritmo para detectar áreas de dithering e mesclar essas áreas reimplementando transparências e tons de cor que seriam criados pela mesclagem natural de cabos como RF e AV. Eles podem ter como alvo dither quadriculado, vertical (em tiras) ou ambos sem embaçar a imagem toda. E eles podem ser agressivos ou suaves, sendo que quanto mais agressivo, maior a chance para erro (mesclar e borrar áreas que não são dither); enquanto que quanto mais suave, maior a chance de não mesclar algumas áreas que são dither. É sugerido usar estes filtros após o (s) de interpolação na lista, mas antes de quaisquer outros filtros. Dois exemplos filtros de dithering são gdapt e mdapt, sendo que o gdapt é o mais agressivo dos dois, mas por não ter um algoritmo complexo é também o mais leve em termos de processamento. Outros incluem: sgenpt-mix, gendither, jinc2.

Outro tipo de filtro é o blur, que significa desfoque. A descrição nos docs libretro descreve como “sombreadores que usam algoritmos de passagem baixa para remover frequências de dados altos e desfocar a imagem”. Este método causa uma espécie de convolução na imagem, o valor de cada pixel é determinado por uma média dos pixels vizinhos, sendo que o pixel original recebe o maior peso e os outros recebem pesos menores a depender da distância do original. Este tipo de filtro pode ajudar também com o dithering, mas por ser indiscriminado causa perda maior de qualidade na imagem geral.

Um tipo similar a este são os de suavização, que borram a imagem para dar um aspecto “HD” a ela. Muitos (inclusive eu) não curtem por desvirtuar a arte, mas dá um visual diferente e outros muitos gostam. Exemplos desses incluem os antigos XSAI, os XBR, os Super Eagle, os HQ e os atuais lanczos.

Já filtros antialiasing (geralmente denotados por um aa no nome) servem para detectar por algoritmo e suavizar bordas serrilhadas.

desfoque gaussiano

Existem também filtros predefinidos como CRT e NTSC. Shaders CRT combinam efeitos que tentam simular características de TVs de tubo, como a curvatura, o brilho, desfoque e as ‘scanlines’. Eles também podem imitar um tipo específico de máscara. Filtros de CRT geralmente são combinações tudo-em-um que não necessitam de adendos adicionais, podendo simplesmente ser usados sozinhos ou após um de interpolação. Exemplos de filtros CRT incluem CRT-Geom (imita máscara de grelha), CRT-Easymode, CRT-Hyllian (para PCs menos potentes), CRT-Lottes (imita máscara de fenda), Fakelottes (o Lottes com scanlines), CRT Royale (pode-se escolher o tipo de máscara e tem várias outras opções) e CRT-Guest Advanced (o mais completo e pesado deles). Quando você vê glow ou hallation no nome de um desses filtros, está tentando simular o brilho de um tubo. Quando colocam ‘fast‘ quer dizer que tem o alvo de ser rápido e menos intenso em processamento. Assim como os CRT, filtros LCD servem para imitar telas de portáteis da época, como o Mega Drive portátil da Sega, o Nomad.

Filtros NTSC, por sua vez, tem por objetivo simular as distorções causadas por um cabo composto, RF, S-Video ou componente. Deste tipo temos como exemplo os do blargg e do Maister. É sugerido que seja o último filtro a ser aplicado.

Um outro tipo de filtro, que não é utilizado na imagem em si, são os bezels, que colocam algo nas bordas fora da imagem do jogo, como uma imagem de bordas de TV de tubo ou de máquinas de fliperama, para simular mais da experiência da época.

Exemplo de um Bezel

Outra opção para shaders são presets. Na verdade é meio que isso que os filtros CRT e NTSC são, mas qualquer um pode criar e compartilhar seus próprios presets na net e alguns pacotes de presets se tornaram famosos. Como o do Sonkun, o do Retro-Crisis, o do CyberLab e o do Koko-aio. São para quem quer experimentar combinações avançadas de shaders sem ter que colocar a mão na massa.

Em uma CRT real, os shaders podem não funcionar adequadamente, e você pode querer usar um filtro como o tvout para diminuir a resolução para 240p ou 480p se sua CRT tiver resolução muito alta.

OBTENDO SHADERS

Você pode estar se perguntando como obter os shaders. Como tudo neste artigo, tem vários meios.

Quando você baixa o RetroArch, vá ao Atualizador online e atualize sombreadores. Isso garantirá muitos shaders presentes.

Caso se depare com a página do github de algum, use o botão de download (setinha pra baixo). Mais pra frente irei falar onde colocar o arquivo baixado. Clique aqui para o repositório oficial de shaders do RetroArch no GitHub. Clique aqui para a pasta de shaders GLSL do RA e clique aqui para a pasta Slang. A página de downloads aqui do DYM tem alguns de Kega Fusion. Clique aqui para o GitHub dos shaders do OpenEmu.

Para bezels, neste link tem alguns links para bezels. Outra opção para um efeito estilo bezel são as sobreposições. Estas aparecerão após você ir ao Atualizador online e Atualizar sobreposições. Você pode usar o programa RetroArch Overlay Editor para fazer suas próprias sobreposições (link aqui). A pasta de sobreposições se chama overlays. Mas talvez seja melhor usar de bezels em formato de shaders mesmo e habilitar sobreposições apenas no caso de precisar do joystick virtual (tipo, no Android).

Para utilizar shaders, caso os tenha baixado, você tem novamente escolhas. Pode colocar em qualquer pasta que você quiser e modificar o diretório de shaders. Vá em Configurações, Diretório, Sombreadores de vídeo, navegue até a pasta desejada e clique em Utilizar este diretório. O diretório de filtros em formato filt + dll pode ser definido na opção Filtros.

Outra opção é colocar na pasta padrão já existente. A pasta do RetroArch por padrão é no disco local C, RetroArch. A pasta de sombreadores se chama Shaders, e está subdividida em glsl e slang, portando é necessário saber o tipo de shader baixado e inserir na pasta correspondente. Se estiver compactado, descompacte. Já o diretório padrão de filtros formato filt é em Filters, Video.

No Ares a pasta é Shaders. No BlastEm também é em uma pasta shaders. No Kega Fusion, coloque em uma pasta com o nome Plugins.

CONFIGURANDO FILTROS

A primeira coisa a ser configurada é o driver de vídeo. Sugiro deixar no padrão que já vem selecionado com o emulador e mudar só se tiver problemas, testando até achar o que melhor servir. Caso tenha algum problema, vá em Configurações, Drivers, Video. Escolha um dos drivers disponíveis, como OpenGL (gl), Direct3D (d3d) ou vulkan. No Ares, esta opção está em Settings, Drivers. É dito por aí que o driver vulkan oferece desempenho melhor, principalmente em placas que não são da nVidia. Para saber se tem suporte ao vulkan, baixe o Vulkan SDK neste link, instale-o e rode o vulkaninfo.exe.

Caso ‘quebre’ o RetroArch, para consertar  basta ir até a pasta dele e apagar o arquivo retroarch.cfg. Caso não encontre este arquivo, ache um chamado retroarch.default.cfg e mude o nome dele para retroarch.cfg. Caso não consiga, desinstale e reinstale o programa.

Na verdade o RetroArch tem dois tipos de filtros, os shaders ou sombreadores, que usam a GPU (placa gráfica) em seu processamento, e o que o RA efetivamente chama de Filtros, que usam a CPU. Estes últimos são o único tipo de que emuladores como Kega Fusion dispõe. Os filtros CPU são mais limitados no que são capazes de fazer, mas mais leves para PCs com placas de vídeo mais fracas. Vamos começar por eles.

O primeiro é a Filtragem bilinear disponível em Configurações, Video, Escala. Os filtros de vídeo CPU propriamente ditos, entretanto, estão em Configurações, Video, Filtro de video. Basta selecionar um dos filtros para ativá-lo. Para desativar, basta clicar em Remover o filtro do vídeo. O próprio núcleo Genesis Plus GX tem um filtro desse tipo, disponível no Menu rápido, em Configurações do núcleo, Video, Filtro NTSC (Blargg). Aplique um ou outro destes, mas não os dois. Nas configurações de vídeo do núcleo tem também uma opção que imita a tela LCD do Nomad, que lê Filtro fantasma LCD.

Mas não é para isto que estamos aqui, não é verdade? Para os famosos shaders do RetroArch, primeiro vá no Atualizador online e clique em Atualizar sombreadores. Para poder ver o que está fazendo sem precisar sair do menu e voltar ao jogo toda vez, vá a Configurações, Interface de usuário, Aparência, Opacidade e coloque em 0.00, tornando o fundo dos menus transparente. Assim ao aplicar um filtro, verá seu efeito imediatamente.

Execute um jogo e entre no Menu rápido do emulador, vá em Sombreadores. Clique em Sombreadores de vídeo para deixar Ligado. Em Estágios de shader, você pode selecionar quantos filtros irá utilizar. Ao selecionar algum número, digamos 1, você pode selecionar shaders. Por exemplo, clique em Shaders #0. Navegue até a página de shaders do formato desejado. Se não aparecer, é por que seu sistema ou driver escolhido não suporta, basta trocar o driver na opção já mencionada ou selecionar outra pasta (slang ou glsl). Para voltar uma pasta anterior, clique em Diretório superior. As pastas estão separadas por tipo de filtro, dentro delas basta clicar no sombreador desejado.

A depender do filtro escolhido, em Parâmetros de shader existem configurações extras que podem ser realizadas. Clique em Aplicar alterações para fazer valer imediatamente para o jogo aberto. Estes parâmetros funcionam assim. O primeiro número (por exemplo 0.80 do Blur strength X na imagem abaixo) é o que está definido. Entre aspas estão o valor mais baixo possível (0.00) e o máximo possível (1.00). No exemplo abaixo temos intensidade do desfoque no eixo horizontal (X) e vertical (Y).

Através dos parâmetros pode-se, por exemplo, configurar a claridade para que um shader de scanlines não escureça demais o visual dos jogos. Os parâmetros são o aspecto mais obscuro pra mim, muito difícil encontrar informações a respeito. Clique aqui para um drive com traduções dos arquivos leiame dos sombreadores.

Depois de configurados seus filtros, clique em Salvar predefinição. Em “Salvar predefinição de shader como” você pode salvar com um nome e inclusive depois copiar o arquivo e compartilhar. Em “Salvar predefinição global”, você pode salvar a configuração atual para ser o padrão de todos os núcleos. “Salvar predefinição de núcleo” serve para configurar como padrão para o núcleo atual (Genesis Plus GX). “Salvar predefinição do diretório de conteúdo” serve para caso você tenha jogos organizados em pastas diferentes, sendo que os parâmetros de shader atuais seriam o padrão para todos os jogos que estão na mesma pasta que aquele que está em execução atualmente. “Salvar predefinição de jogo”, como o nome diz, serve para definir como padrão apenas para o jogo em execução.

Para carregar predefinições salvas anteriormente ou baixadas da net, a opção é “Carregar predefinição”. Você pode carregar múltiplas predefinições e salvar como uma única outra predefinição. Para fazer isso, “Prepend Preset” coloca predefinições antes da última na lista e “Append Preset” adiciona ao final da lista. Esta lista, no caso, é a ordem dos filtros a serem aplicados. Por exemplo, a imagem pode ser escalonada por um filtro de interpolação e depois borrada por um de blur, ou pode ser borrada por um filtro de blur e depois interpolada (a segunda ordem é contraindicada).

Também é possível trocar entre predefinições salvas com os atalhos de teclado que por padrão são: m para mudar para o próximo sombreador na lista e n para voltar para o anterior.

Para usar um bezel em formato sobreposição (overlay), primeiramente para que eles apareçam é preciso habilitar as sobreposições em Configurações, Interface de usuário, Sobreposição na tela, Exibir sobreposição. Você precisará mudar a sobreposição em Predefinição da sobreposição.

No Ares, com o jogo rodando, vá em Settings, Shader e selecione um filtro entre as diferentes opções. No meu caso só ficou disponível com o driver OpenGL. Em Settings, Video há uma opção de Color Bleed que pode ajudar com dithering.

No Kega Fusion, a opção está em Vídeo, Render Plugin. Em Video há também uma opção para Scanlines.

No BizHawk as opções de filtro estão em Config, Display. Na parte de Scaling Filter da aba Scaling & Filtering, marque User e clique em Select para selecionar um filtro. Quando você carrega um jogo: em Gen, Settings, aba Sync Settings está a opção Overscan para mostrar ou ocultar as diferentes áreas de overscan.

No BlastEm vá em Settings, Video e selecione uma opção em Shader.

No MDEmu, os filtros estão em Options, Video, Overlay Effect. Em Overlay Effect Level dá pra configurar a intensidade do filtro.

OUTRAS FUNÇÕES

O RetroArch sugere entrar em Configurações, Vídeo, Saída, colocar o RetroArch em tela cheia (Alt + Enter) e clicar ou pressionar Enter em “Taxa de atualização estimada da tela” para definir a taxa efetivamente medida pelo RA como a que será utilizada.

Para ativar Black Frame Insertion no RetroArch vá em Configurações, Vídeo, Sincronização, Inserção de quadro opaco. Apenas para monitores com taxa de atualização alta (acima de 120 Hz). clique aqui para um teste da taxa de atualização do seu monitor. Tenha em mente que BFI pode causar retenção de pixels (burn in) em telas LCD/LED, mas caso aconteça fique tranquilo pois é temporário. É recomendado usar taxa de 180 Hz caso seu monitor tenha taxa que suporte.

Uma alternativa ao BIF, que se torna disponível com o driver Vulkan, é o shader CRT Beam Simulator. Vá para Configurações, Núcleos, desative Permitir que os núcleos alterem o driver de vídeo. No Atualizador online, atualize os sombreadores slang. Em Configurações, Vídeo, Sincronização, se certifique que Sincronização vertical (VSync) está habilitado. Em Subquadros de sombreamento, selecione a taxa de atualização do seu monitor. Desative o g-sync/free sync (última opção do menu Sincronização). Caso o monitor e/ou placa de vídeo tenha suporte a free sync, desative. O Sombreador que você quer estará na pasta slang, subframe-bfi, crt-beam-simulator. Para ajustar a claridade, use os parâmetros.

Para ativar g-sync/free sync, caso seu monitor suporte, vá a Configurações, Vìdeo, Sincronização e habilite “Sincronizar taxa de atualização exata ao conteúdo”. Clique aqui para baixar um teste de suporte da NVidia.

Para ativar o run-ahead no RetroArch, vá a Configurações, Latência e habilite Executar à frente. No Ares, a opção está em Settings, Options. Basta marcar Run-Ahead.

Não possuo um dispositivo compatível mas supostamente com o driver Vulkan em um dispositivo compatível deve ser possível habilitar HDR em Configurações, Vídeo. Essa função serve para melhorar o alcance dinâmico e a entrega de cores da imagem.

No Menu rápido, em Configurações do núcleo, Hacks de emulação, existe a opção Otimizar rolagem vertical. Esta função suportamente melhora efeitos de meia rotação falsos usando scroll vertical. O vídeo abaixo mostra uma comparação aos 0:50:

https://youtu.be/Dxfp_ZUfg38?si=zDDp_Dv4UCl9Xfyr&t=50

Para ativar o modo para TVs de tubo (SwitchRes), primeiro ative as configurações avançadas em Configurações, Interface de usuário, Mostrar configurações avançadas. Depois vá em Configurações, Vídeo, Trocar para resolução CRT. A opção Taxa de atualização personalizada é para você modificar uma através do arquivo ini (abaixo).

Para usar a função acima, terá que forçar a placa de vídeo a uma resolução abaixo do que talvez ela suporte. E seria conveniente que fizesse isso automaticamente, não ficando presa nela ao sair do emulador. Programas como o Custom Resolution Utility (aqui), o pago e apenas para MacOS SwitchResX (aqui) e o CRT Emudriver (apenas para placas ATI/AMD, aqui) permitem a instalação dessas resoluções extras (mas parece que o modo do RetroArch só funciona com o Emudriver).

As opções disponíveis são:

A super resolução é necessária para lidar com o clock de pixels das placas atuais, cujo mínimo é superior ao necessário para resolução horizontal de 320, a resolução horizontal não importa tanto, então se usa essa super resolution de 2560 x 240.

Para mais configurações do SwitchRes baixe o ini clicando aqui. Coloque ele na pasta do RetroArch e abra ele com um bloco de notas para fazer edições nas configurações avançadas.

Clique aqui para um guia completo dessa instalação.

Será necessário baixar e instalar o chamado Emudriver, que irá habilitar o uso das resoluções necessárias, aqui chamadas modelines. O SwitchRes alterna automaticamente resoluções conforme necessário, inclusive dentro de um mesmo jogo quando ele muda de resolução dependendo da parte que está sendo exibida, o que eles faziam (por exemplo, uma resolução nos menus e dentro do jogo em si).

Segundo a lista de compatibilidade do Emudriver, funciona com o Kega Fusion também.

Caso esteja em dúvida e não queira ficar testando filtros, clique no link a seguir:

Showcase for RetroArch Shaders 2024 – Page 2 – things i play

Este site tem 8 páginas em que você pode verificar efeitos de filtros individuais e comparar eles para decidir o que vai usar. Basta clicar no link em azul, que tem várias opções de filtros que podem ser comparados.

As imagens das comparações também podem ser baixadas no Archive.

Já o link abaixo é para comparações entre os filtros CRT:

CRT Shader Showcase for RetroArch – things i play

A seguir comparando os presets do Sonkun:

Discovering Sonkun’s crt-guest-advanced-ntsc Slot Mask presets – things i play

Abaixo, um link de comparações dos parâmetros diferentes do filtro CRT Royale NTSC SVideo:

https://forums.libretro.com/t/comparing-each-shader-parameters-settings-for-crt-royale-ntsc-svideo/42422

E o repositório GitHub a seguir é de screenshots dos filtros em ação:

GitHub – libretro/shader-previews: A repo to store thumbnail previews for RetroArch’s many shaders.

Segue abaixo uma demonstração (uma de muitas que podem ser encontradas na internet) do que filtros são capazes (estes são dos pacotes do Retro Crisis):

https://www.youtube.com/watch?v=pd75fzm7sBc

OUTRAS OPÇÕES

Uma opção extra para o uso de shaders é o WindowCast, que propõe usar o RetroArch para aplicar os shaders dele em outras aplicações, como emuladores standalone (BlastEm, Kega Fusion). O download pode ser feito a partir do link: LibRetro-WindowCast.7z – Google Drive ou a versão experimental aqui: windowcast2_experimentbuild2024_02_07_09_02.tar.xz – Google Drive ou ainda a versão Vulkan: LibRetro-WindowCast-NewVulkan.7z – Google Drive

Um programa standalone que faz isso é o ShaderGlass (link aqui), que aplica filtros RetroArch sobre qualquer janela. Já o programa ReShade (aqui) aplica filtros específicos seus, não necessariamente voltado aos retrogames, mas muitos shaders do RetroArch foram portados para o ReShade. Para Linux existe o vkBasalt.

Eu não consegui usar o WindowCast, mas para usar o ShaderGlass é simples, baixe e descompacte o arquivo em uma pasta. Dê um duplo-clique no executável ShaderGlass.exe. Em Input você pode definir de onde virá o conteúdo a ser sombreado, como Desktop, All Displays para sombrear a tela toda. Clique na janela do ShaderGlass e maximize-a, você vai usar ela ao invés da janela do seu emulador. Em Window, você pode selecionar a janela aberta de um emulador ao invés da tela toda. Em Shader, Choose from Library, você pode escolher o filtro que será utilizado. Em Shader, Parameters, você pode configurar os parâmetros do filtro.

Então, é isso. A meu ver os filtros são algo essencial à jogatina de jogos clássicos, principalmente os de Mega Drive. É uma escolha que todos que forem emular Mega Drive tem que fazer, se deixarão o dithering visível para ter mais nitidez ou se sacrificarão um pouco de nitidez para permitir transparências e colorações feitas pelo truque de dithering. Mas esta é apenas a escolha inicial, pois as possibilidades de personalizar a aparência dos jogos são enormes, e em constante crescimento. É possível ignorar esta parte e deixar tudo no padrão pré-programado do emulador de sua escolha, mas para quem quer algo mais legítimo ou agradável visualmente, é bom que a opção exista.

E aí, achou alguma coisa útil? Qual sua preferência para filtros de jogos, algo fiel à era, pixels bem visíveis ou talvez um filtro bem agressivo que some com os pixels? Comente abaixo!

FONTES:

Godpuu, Fórum OuterSpace, Docs Libretro, GitHub Libretro, GameTech Wiki, FilthyPants, EmuGen, Forums Libretro, Forums Libretro 2, GameTechWiki 2, GameTechWiki 3, GameTechWiki 4, CRT Pixels, Fórum Outer Space 2, Fórum Outer Space 3, UFO Test, Reddit, Wikipedia, Wikipedia 2, things i play, Displaced Gamers, White_Pointer Gaming, N64 Brasil, Libretro Forums 3 , Pin Eight, Annmay10, Docs Libretro 2, Docs Libretro 3, Docs Libretro 4, Libretro Forums 4, Libretro Docs 5, Librashader, Web Archive, Retro Game Corps, Libretro Forums 5, HD Retrovision, Clownacy’s Corner, Forums Blur Busters, RetroArch GitHub, Libretro Forums 6, Libretro Forums 7, Retro Crisis, Stack Exchange, Woohyun-Kang GitHub, peeweek GitHub, MyTechToyBox, Sharp Bilinear GitHub, Nostalgia Nerd

#emulação #filtros #guia #megaDrive #retroarch #shaders #sombreadores #tutorial

Emma Liv 🇨🇦not3ottersinacoat
2025-05-27

@s31bz laptop for retrogaming with , games from with , and also remote play from my using

[chocula@mastodon ~]$:t_blink:CondeChocula@social.linux.pizza
2025-05-25

I've had to use #adb in #debian due that Android 11 or higher It does not allow to see the content of the 'Android/data' folder.

It is the unique method to copy the data saved file from Final Fantasy VI

I usually play with #retroarch in PC and #lemuroid in #Android

Now I can playing it in my smartphone. muahaha

#finalfantasyvi #finalfantasy #videogames

🅴🆁🆄🅰 🇷🇺erua@hub.hubzilla.de
2025-05-25
Кстати, про онлайн-эмуляторы для ретрогейминга в браузере. Попался такой вариант заточенный под эмуляцию SEGA MegaDrive (она же SEGA Genesis).

• может работать через WebGL;
• доступны два ядра эмуляторов;
• есть основные шейдеры;
• можно крутить настройки ядра;
• управление скоростью эмуляции;
• есть сохранение состояния.

Может оказаться неплохим вариантом для развлечения или демонстрации, когда нет желания на каком-то из компов или планшетов разводить суету с установкой RetroArch, ядер эмуляторов, поиском и загрузкой ROM'ов.

Однако, не без изъянов:
  • хорошо работает в Chrome / Chromium, а в том же Firefox периодически похрипывает аудио, может надо uBlock отключить, может ещё что;
  • в полноэкранном режиме неправильные пропорции у картинки, не 10:7, не 4:3, а что-то непонятное.

По ссылке на эмулятор должна открываться оригинальная игра Zool, по ряду признаков видно, что ROM для NTSC-региона, потому весьма динамичное. Это позволяет оценить наличие задержек ввода/управления и вообще в продолжении недавнего о ремастеринге игры Zool.

#Zool #SEGA #RetroArch #retrogaming #retrogames #games #gaming #lang_ru
Eduardo Medina 🇪🇸edlinks
2025-05-24

Cuánta retrorrotura me estoy llevando con la emulación de ...

Super-Bit-Shader 3.0 is now released! Now with Bug fixes, improved palettes and Game Boy support. github.com/AshleyPikach... #Retroarch #GameBoy #VirtualBoy #NeoGeoPocket #Wonderswan #PokemonMini

GitHub - AshleyPikachu/Super-B...

🅴🆁🆄🅰 🇷🇺erua@hub.hubzilla.de
2025-05-20
Есть оказывается у игры Zool: Ninja of the Nth Dimension ремастеринг — «Zool Redimensioned» вышедший в 2021-м году на Windows, PlayStation 4 and Xbox One.
Фактически это и оригинальная «Zool: Ninja of the Nth Dimension» от 1992 года, хорошо известная по различным игровым видео-приставкам (пример игры для приставки SEGA), и второй режим, чутка более современный. Весьма динамично, изначально шло в 1990-х годах в роли конкурента «Sonic The Hedgehog» (известного эксклюзива на SEGA).

Видео с тем как выглядит этот самый ремастеринг «Zool Redimensioned» — это уже после отключения видео-фильтра в настройках дисплея.

Установка и разворачивание
Если взять репак от t1coon — это 80 Мб файл «zool-redimensioned-t1coon.zip», там инсталлятор-распаковщик, ставится почти в любой префикс wine, проверял на win64. Есть на торрентах, не проблема найти по Magnet link или же torrent-файлу, например, на рутрекере есть portable-вариант.
Однако, работать будет лишь начиная с Windows 10, все Windows 8 и 7-ки в пролёте.

О нюансах ремастеринга
  • Zool представлен фактически оригинальным, с той самой нынче отталкивающей пиксельной графикой, без намёка на какие либо 2.5D эффекты или потуги. В отличии от почти «консольных» вариантов Sonic'а для ПК.
  • Есть два режима игры, один из которых именно для ветеранов «Ninja of the Nth Dimension» или кто на портативной ретро-консоли регулярно гоняет Zool аутентичный.
  • Изначально в настройках дисплея включён фильтр с полосками и геометрией для закоса под картинку ЭЛТ-телевизора.

Зачем нужен вариант для IBM PC?
  • Это гораздо бодрее и веселее, чем попытки играть в разрешении 320×224 / 320×240 точек в эмуляторах SEGA. А в случае вариантов Super NES, то всё гораздо хуже отнюдь не из-за 256×224 / 256×240, а фактически полном отсутствии нормальной динамичности игры.
  • В случае ROM'ов картриджей SEGA ощущается разница в динамике между вариантами для европейского рынка (Азия, PAL) и для рынка США-Япония (NTSC). Те самые злополучные 17% из-за привязки к 50 Гц или 60 Гц в сетях электроснабжения. И потому гоняя ROM'ы в том же RetroArch придётся как-то определяться, какой из вариантов больше подходит.

Специфика работы на GNU/Linux
Абсолютно точно не нужен DXVK и даже вреден, деградирует FPS (при переходе с обучения к мирам). Более чем достаточно WINED3D, т.е. при запуске через Lutris надо выключить всё в Runner options: DXVK, VKD3D, D3D Extras, DXVK-NVAPI/DLSS. Как и кучу всего другого.
Работает под Wayland'ом, как через xwayland, так и напрямую (`env -u DISPLAY wine ...`).

#wine #Zool #ZoolRedimensioned #SEGA #RetroArch #retrogaming #retrogames #games #gaming #lang_ru @Russia
Zool Redimensioned (2).jpgZool Redimensioned (4).jpgZool Redimensioned (3).jpg
in_sympathyin_sympathy
2025-05-16

Tried to play some on my Pi 5 today and it won't start. And I know for sure that it used to before the update to 1.21.

I have a Flatpak version and no matter what I tried - it won't start. Reinstalling didn't do the trick either.

So I built Retroarch and the needed cores from source and that works just fine, but I wonder what is the problem with the one from Flatpak 🤔?

2025-05-15

In my quest to keep older computers out of recycling, here is a video about putting the #RetroGaming emulator #RetroArch on Linux Mint XFCE
youtu.be/isZMmCyWVKk

🅴🆁🆄🅰 🇷🇺erua@hub.hubzilla.de
2025-05-12
@𝙹𝚘𝚑𝚊𝚗 есть ряд нюансов, из-за которых онлайн-эмуляторы всегда будут или проигрывать или вообще не могут быть альтернативой #RetroArch, #PCSX2 и т.п.
даже если заставить онлайн-эмуляторы выполняться полностью в браузере через WASM и отрисовывать картинку через WebGL.

но интрига с шейдерами веселит, когда от обычных OpenGL Shading Language (GLSL) переходят к более кросс-компилируемому Vulkan GLSL.
всегда казалось, что такие вопросы как работа шейдеров давно нормализована и стабилизирована, без приколов и типа зависимости от версии GL или того, как производитель видео-карты реализовал в драйвере компилятор GL.

веселит, что лишь с появлением #Vulkan игродельня получила шейдеры в промежуточном двоичном формате SPIR-V, фактически уже давно имея подобное 20+ лет в виде двоичного представления HLSL-шейдеров (платформы Direct3D).
Emma Liv 🇨🇦not3ottersinacoat
2025-05-12

I don't understand why more emulation fans don't use over . It's so much easier to use and best of all, it (PUAE and ) handle PAL 50hz mode on my 60hz-only monitor without any noticeable stutters or skips.

For just playing games it's pretty much plug and play, for setting up Workbench on a virtual hard disk documentation is unfortunately a bit sparse but I figured it out a while back and it's pretty easy.

General documentation here: docs.libretro.com/library/puae/

🚀 Несерьёзный Выдумщик 👨‍🔬 :bunhop:grumb@shitpost.poridge.club
2025-05-12

У этого Retro Crisis есть видео с демонстрацией как работает пакет шейдеров для игр #SEGA Mega Drive (она же SEGA Genesis)
https://www.youtube.com/watch?v=S6x0-TWwEsM

Это не про
#linux, а всё про #RetroArch, но когда оно на #windows. Так вполне что массовая вещь и для игр с разных консолей разные наборы шейдеров:
https://www.youtube.com/playlist?list=PL3amG1g3KoFvtfCnsrxTF4YHYPQ0RUYXZ

#games #gaming #RetroGaming @russian_mastodon@mastodon.social @ru_ng@mastodon.social @Russia@3zi.ru

RE:
https://hub.hubzilla.de/item/2fabf192-ba29-48a6-97cc-e9b7f01c4b84

🅴🆁🆄🅰 🇷🇺erua@hub.hubzilla.de
2025-05-11
Про шейдеры, показывает как установить для RetroArch на машинах с windows.
https://youtube.com/watch?v=G42g23ONYsI
С инструкцией и неплохой подборкой самих шейдеров. Проверял только что на играх SEGA Mega Drive тот же `retro crisis/1080p Curved/RC GDV-NTSC - Mega Drive - Clean` и ряд других.

Они в лучшую сторону отличаются от тех glsl-shaders, что официально предлагает Libretro (там годные в `crt`-директории).

Зачем? Внешний вид старых игр не обязательно должен отпугивать из-за некорректной отрисовки эмуляторами. Пиксельная графика у видео-игр была задумана и проработана в художественном плане именно для картинки с кинескопных дисплеев. Т.е. даже не для ЭЛТ-мониторов, а вообще ЭЛТ-телевизоров 1980-1990 годов. И в живую выглядит и воспринимается на ЭЛТ далеко не так, как эмуляторы строят картинку на современных мониторах :)

ЗЫ:
Судя по @RamSDRAdmin (R3DHX) далеко не все ещё освоили шейдеры, но эти простые и динамичные видеоигры с приставок один из наиболее удачных способов разгрузиться (в отличии от большинства современных игрушек для ПК).

#RetroArch #retrogaming #retrogames #games #gaming #lang_ru @Russia

🅴🆁🆄🅰 🇷🇺 wrote the following post Mon, 23 Dec 2024 19:54:58 +0100 Если угораздило на ПК играть в старьё 40-летней давности для той же Sega Mega Drive или же Super Femicom (SNES, SFC), то без шейдеров не обойтись. Причём не просто шейдерной обработки, а прямо уже готовые преднастроенные наборы — glsl-shaders для использования в #RetroArch

Т.е. видеоигры на то и «видео-», что были созданы для отображения на CRT-мониторах с чересстрочной развёрткой и весьма заметно сеткой пикселей.
На картинках пример отсюда, там же ссылка на оригинальный большой разбор с кучей примеров.


Конкретные эмуляторы приставок в #RetroArch зовутся «ядрами» и в #linux -ах можно ставить с репозитория, как любой другой софт, не обязательно выкачивать онлайн через интерфейс.

Загрузив преднастроенный набор (glsl) для эмуляции того же CRT-монитора или LCD, GameBoy, & etc. можно подкрутить отдельные составляющие в настройках шейдера (вроде дисторсии и яркости с цветностью, убрать рамку и т.д.). А сохранить этот тюнинг можно применимо к эмулятору приставки в целом или же персонально для отдельной игры.

Довольно много разных в этом glsl-shaders, на цвет и вкус. Есть из чего выбирать и с чем поиграться.

#retrogaming #retrogames #games #gaming #lang_ru
Eduardo Medina 🇪🇸edlinks
2025-05-11

-Sin trazado de rayos.
-Sin frame generation.
-Sin texturas para 4K.
-Sin reescalado.
-Sin antilag.
-Sin ocupar 150GB de almacenamiento en disco.
-Sin estrangular el hardware (si tiras de emulador en un ordenador moderno).

Y con todo eso, es uno de los mejores videojuegos de todos los tiempos. ¡Cómo lo estoy disfrutando!

La versión para Game Boy Advance de The Legend of Zelda: A link to the past ejecutada en RetroArch con el módulo mGBA.La versión para Game Boy Advance de The Legend of Zelda: A link to the past ejecutada en RetroArch con el módulo mGBA.La versión para Game Boy Advance de The Legend of Zelda: A link to the past ejecutada en RetroArch con el módulo mGBA.
Eduardo Medina 🇪🇸edlinks
2025-05-10

Eso sí, si usáis el núcleo de en , os recomiendo encarecidamente habilitar el filtro de paso bajo para que el audio no os reviente los tímpanos.

Configuración del audio en el núcleo de mGBA para RetroArch.

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst