🛠 REFERÊNCIA TÉCNICA

Como o Karamelo Emu funciona

Controles, ajustes por sistema, filtros, RetroAchievements e o que ainda não está funcionando. Sem rodeios: aqui vai o que foi verificado e o que ainda precisa de atenção.

Status real por sistema

Verificado significa: carregado e visto rodando, com imagem na tela. Os demais dependem de BIOS ou não foram testados nesta rodada.

SistemaCoreSituaçãoObservação
Master Systemsms.dll — Genesis Plus GX✅ VerificadoUsado como referência em todos os testes de vídeo.
PlayStationpsx.dll — Beetle PSX✅ VerificadoFechava ao carregar até a ordem de inicialização das portas ser corrigida.
PlayStation 2 (PS2)ps2.dll — Play! v0.77✅ VerificadoVerificado com Phantasy Star Generation 1 e boot completo. Motor de áudio reformulado: detecta taxa nativa via SDL_AudioStream, reseta sincronia por jogo, compensação de deriva por histerese inspirada no PCSX2 e fila adaptativa que auto-expande em underruns.
Nintendo DSnds.dll — melonDS 0.9.3✅ VerificadoCom layouts de tela e caneta pelo mouse.
Mega CD / Sega CDgenesis.dll — Genesis Plus GX🔑 Precisa de BIOSPrecisa de bios_CD_U.bin (ou _E/_J). A abertura de alguns jogos é longa por emular leitora 1x.
NeoGeo CDneocd_alt.dll🔑 Precisa de BIOSBIOS em bios/neocd/. Imagens de disco não usam o core Geolith.
Saturnsaturn.dll — Beetle Saturn🔑 Precisa de BIOSsega_101.bin / mpr-17933.bin. CHD e .7z funcionam.
Dreamcastdreamcast.dll — Flycast🔑 Precisa de BIOSExige 3D Acceleration ligado em Settings → Video.
TurboGrafx CDpce.dll🔑 Precisa de BIOSsyscard3.pce.
Nintendo 64n64.dll / n64_parallel.dll / n64_mupen.dll🔑 Precisa de BIOSSeletor de core no menu. O n64.dll padrão não exporta memória, então fica sem conquistas.
GameCubegamecube.dll — Dolphin⛔ Não funcionaNão funciona. Falha dentro do Dolphin, em thread própria, logo após “Booting from disc”. Precisa de contexto OpenGL compartilhado entre threads, que o backend atual não oferece.

Controles

🎮 Controle (SDL_Gamepad)

Não há nada para configurar. O frontend consulta até 4 controles via SDL_Gamepad a cada quadro, então um controle plugado no meio do jogo simplesmente passa a funcionar — sem reiniciar, sem mapear. Cobre Xbox, DualShock, DualSense, Switch Pro e genéricos Bluetooth/DirectInput pela mesma interface.

Mapeamento fixo (losango do MiSTer)
A (baixo)BPular / atacar
B (direita)AConfirmar
X (esquerda)YCorrer / atacar
Y (cima)XEspecial
LB / RBL / ROmbros
Start / BackStart / SelectStart+Select abre o OSD
Também ligados

L2 e R2 (gatilhos analógicos), L3 e R3 (clique dos analógicos), analógico esquerdo e direito. O analógico esquerdo também gera direcional.

Zona morta

Ajustável em Settings → Controller: 5%, 10%, 15% ou 20%.

⌨️ Teclado (Jogador 1)

As 12 teclas são remapeáveis em Settings → Controller (ou Define Buttons no menu em jogo). Enter na linha, aperte a tecla nova, pronto. Esc cancela.

BotãoTecla padrãoChave no config
CimaSeta ↑key_up
BaixoSeta ↓key_down
EsquerdaSeta ←key_left
DireitaSeta →key_right
Botão BZkey_b
Botão AXkey_a
Botão YAkey_y
Botão XSkey_x
L (ombro)Qkey_l
R (ombro)Wkey_r
StartEnterkey_start
SelectEspaçokey_select
Duas regras de segurança
  • Esc e F12 não podem ser vinculados — são o que abre e fecha o menu. Vincular um deles deixaria você sem saída.
  • Uma tecla já usada em outro botão é transferida, não duplicada. Dois botões na mesma tecla tornaria um deles impossível de apertar sozinho.

Tudo é gravado em Config/karamelo.cfg na hora. A linha “Restaurar” volta os 12 ao padrão.

🖱️ Mouse como caneta (Nintendo DS)

Segure o botão esquerdo sobre a tela de toque e o mouse vira a caneta. A posição é absoluta: o toque cai exatamente sob o cursor, seja qual for a proporção, o tamanho da janela ou as barras pretas.

Quando está ativo
  • Só com a janela em primeiro plano.
  • Só com o OSD fechado — ali o mouse é do menu.
  • Fora da imagem não conta como toque. Sem isso, a barra preta lateral valeria como a borda da tela e arrastaria a caneta para lá.

Opções por sistema

Aparecem no menu em jogo (F12) apenas quando o core correspondente está carregado.

🟦 Nintendo DS

Layout TelasCima/Baixo · Baixo/Cima · Esq/Dir · Dir/Esq · Só Cima · Só Baixo · Híbrido C · Híbrido B

As duas telas do DS lado a lado, empilhadas, invertidas, sozinhas ou em modo híbrido (uma grande e uma pequena no canto). Muda ao vivo, sem recarregar.

Espaço Telas0 · 8 · 16 · 24 · 32 · 48 · 64 · 80 · 96 · 126

Distância entre as duas telas. O core aceita qualquer valor de 0 a 126; o menu oferece uma seleção porque passar de 1 em 1 por 127 valores é inviável.

Tela PequenaInferior · Superior · Duplicar

Qual tela vai na janelinha do modo híbrido. Só aparece nos layouts híbridos.

🔵 Mega CD / Sega CD

Cache do CDDesligado · Ligado

Carrega a imagem inteira na RAM. Aceleração segura: não mexe em temporização, só elimina a busca no disco. Precisa recarregar o jogo.

Acesso do CDReal · Rápido

O padrão “Real” emula a latência da leitora original, e é por isso que alguns jogos demoram. “Rápido” acelera muito, mas o próprio core avisa que alguns jogos travam se os dados do CD chegam cedo demais — por isso é escolha sua, não o padrão.

🟡 Master System

FM Audio (YM2413)Auto · Desligado · Ligado

O chip de som FM que um punhado de jogos japoneses usa. O Genesis Plus GX sempre expôs isso; o frontend é que nunca oferecia.

🔴 NeoGeo

Hardware e regiãoSystem Type · UniBIOS HW · CD Type · CD Region · Memory Card

Console (AES), arcade (MVS) ou UniBIOS; tipo de leitora (CDZ, Top-Loading, Front-Loading); região; e cartão de memória plugado ou não.

DIP switchesSettings · Freeplay

As chaves de configuração da placa arcade, como no hardware real.

🟢 Nintendo 64

N64 CoreDefault (sem RA) · ParaLLEl-N64 · Mupen64Plus

Três motores diferentes. O padrão não exporta a memória do console, então não rende conquistas — os outros dois rendem.

Plugin gráficoautomático

Escolhido conforme o modo de render: plugin OpenGL quando a aceleração 3D está ligada e disponível, rasterizador por software quando não. Entregar um plugin GL a uma máquina sem contexto trava o core.

🎮 PlayStation 2 (PS2)

Motor de Áudio SDL_AudioStreamAuto-detectado (44.1 kHz / 48 kHz)

Detecta a taxa nativa da placa de som do usuário via SDL_AudioStream em vez de forçar 48 kHz, eliminando reamostragem espúria. Inclui compensação de deriva com histerese inspirada no PCSX2 e fila adaptativa que aumenta a latência sozinha ao detectar underruns recorrentes, mantendo sincronia sem estalos — sem o bug antigo que travava a latência alta permanentemente.

Trava de SincroniaReset por jogo

A trava que elimina flutuações de pitch agora se recalibra a cada jogo ou core carregado, impedindo que a calibração de um jogo anterior cause dessincronia no seguinte durante a mesma sessão.

🚀 JOGOS NATIVOS RECOMPILADOS

Ports & Recomp (Executáveis Nativos)

Uma categoria nova no menu principal, separada dos cores de emulação. São jogos clássicos que foram recompilados estaticamente (tecnologias como N64Recomp e ports de descompilação de fãs) para rodar como executáveis nativos de Windows, sem precisar de emulador. O app baixa, instala e já abre direto pelo menu.

Como funciona para o jogador (fluxo direto)

🕹️

1. Menu principal: Navegue até a categoria “Ports & Recomp”. Cada título exibe [JOGAR] (se já baixado) ou [BAIXAR] (se ainda pendente).

2. Download em 1 tecla: Aperte Enter em [BAIXAR]. O app consulta a API do GitHub Releases, baixa a versão mais recente dos binários, extrai na pasta correta e inicializa o jogo automaticamente — sem fechar o app nem mexer em diretório nenhum.

📁

3. Varredura automática de ROMs: Para jogos que necessitam da ROM original para extrair assets (como na maioria dos ports de N64), o app busca sozinho na sua pasta roms/Nintendo64/ e copia para o lugar certo com segurança quando identifica o arquivo.

🔍

4. Solicitação inteligente: Quando o nome do arquivo for genérico ou o port exigir imagem de outros consoles (PS1, PS2, Xbox 360), o próprio port pede a imagem na primeira execução, exatamente no fluxo padrão de cada projeto.

⚖️ Transparência ética e legal (Sem pirataria e sem distribuição de ROMs)

O Karamelo Emulador NUNCA hospeda, baixa ou distribui ROMs, discos ou imagens proprietárias. O app baixa única e exclusivamente os executáveis de código aberto e distribuição livre publicados nos repositórios GitHub dos próprios criadores de cada projeto de recompilação. A posse legal da ROM ou mídia original para extração de assets permanece sendo de inteira responsabilidade do usuário, exatamente como já ocorre com os cores normais de emulação.

Catálogo de 39 jogos verificados

Todos os 39 jogos da tabela interna do app foram baixados, extraídos e tiveram a janela confirmada rodando na tela nesta versão (incluindo casos com fluxo próprio de diálogo nativo de ROM, como Pokémon Stadium e Castlevania: Symphony of the Night). Destaques de 60 FPS cravados incluem Zelda 64 Recompiled, Castlevania: Symphony of the Night (SymphonyRecomp), SM64 CoopDX, Dr. Mario 64, Pokémon Stadium e Legend of Dragoon (que baixa sozinho seu runtime Java de ~190MB no 1º boot).

JogoTecnologia / PlataformaStatus no Karamelo EmuladorDestaque Técnico
Dr. Mario 64 (Recompiled 60 FPS)N64Recomp (Nintendo 64)✅ Janela Confirmada (60 FPS)Janela e 60 FPS confirmados. Execução nativa de altíssima fidelidade sem nenhum engasgo de emulador.🔗 Repositório
Zelda 64: Recompiled — Majora's MaskN64Recomp (Zelda64Recomp) (Nintendo 64)✅ Janela Confirmada (60 FPS)Janela e 60 FPS confirmados. Widescreen nativo, alta taxa de quadros e suporte a controles analógicos modernos.🔗 Repositório
Super Mario 64 Coop Deluxe (SM64 CoopDX)PC Port Nativo (Nintendo 64 / PC)✅ Janela Confirmada (60 FPS)Janela e 60 FPS confirmados. Modo cooperativo multiplayer nativo, física refinada e suporte a altas resoluções.🔗 Repositório
Pokémon Stadium (Recompiled)N64Recomp (Nintendo 64)✅ Janela Confirmada (60 FPS)Janela e batalhas 3D confirmadas. Fluxo próprio com caixa de diálogo nativa do Windows solicitando a ROM correta na primeira vez.🔗 Repositório
Legend of Dragoon: Severed ChainsSevered Chains Engine (PlayStation (PS1))✅ Janela Confirmada (60 FPS)Janela e 60 FPS confirmados. Baixa sozinho um runtime Java de ~190MB no primeiro boot e abre o clássico de 4 discos rodando a 60 FPS.🔗 Repositório
Castlevania: Symphony of the Night (SymphonyRecomp)PS1 Recomp / SymphonyRecomp (PlayStation (PS1))✅ Janela Confirmada (60 FPS)Janela e 60 FPS confirmados. Port nativo estático com áudio sem perdas, widescreen sem distorção e resposta imediata.🔗 Repositório
🎮 Bomberman HeroN64Recomp (Nintendo 64)✅ Janela Confirmada (60 FPS)Janela confirmada rodando em tela. Trilha sonora drum & bass sem cortes e taxa de quadros destravada.🔗 Repositório
🎮 Zelda OoT — Ship of HarkinianPC Port (Harbour Masters) (Nintendo 64)✅ Janela Confirmada (60 FPS)Janela confirmada. Port nativo com câmera livre, gyro aiming, alta taxa de atualização e suporte a widescreen.🔗 Repositório
🎮 Zelda MM — 2 Ship 2 HarkinianPC Port (Harbour Masters) (Nintendo 64)✅ Janela Confirmada (60 FPS)Janela confirmada. Suporte ultrawide, iluminação customizada e recursos modernos de acessibilidade.🔗 Repositório
🎮 Star Fox (SNES, Enhanced)SNES PC Port (Enhanced) (Super Nintendo)✅ Janela Confirmada (60 FPS)Janela confirmada. Port nativo do Star Fox original de SNES (chip Super FX) em alta taxa e resolução — não confundir com Star Fox 64.🔗 Repositório
🎮 Harvest Moon 64 (Recompiled)N64Recomp (Nintendo 64)✅ Janela Confirmada (60 FPS)Janela confirmada rodando em tela. O clássico simulador de fazenda rodando como binário nativo x64.🔗 Repositório
🎮 Snowboard Kids 2 (Recompiled)N64Recomp (Nintendo 64)✅ Janela Confirmada (60 FPS)Janela confirmada rodando em tela. Corridas velozes na neve e disputas multiplayer sem engasgos.🔗 Repositório
🎮 Goemon 64 (Mystical Ninja)N64Recomp (Nintendo 64)✅ Janela Confirmada (60 FPS)Janela confirmada. Clássico de aventura da Konami rodando como executável nativo do Windows x64.🔗 Repositório
🎮 Dinosaur PlanetNative Executable Port (Nintendo 64)✅ Janela Confirmada (60 FPS)Janela confirmada. A lendária build da Rare compilada para rodar direto no PC.🔗 Repositório
🎮 Banjo 64 (Banjo-Kazooie)N64Recomp (Nintendo 64)✅ Janela Confirmada (60 FPS)Janela confirmada. Plataforma 3D preservada com taxa de quadros fluida e suporte a resoluções modernas.🔗 Repositório
🎮 Bomberman 64N64Recomp (Nintendo 64)✅ Janela Confirmada (60 FPS)Janela confirmada. Física de bombas e multiplayer clássico rodando sem quedas de quadros.🔗 Repositório
🎮 Mega Man 64N64Recomp (Nintendo 64)✅ Janela Confirmada (60 FPS)Janela confirmada. Exploração 3D de Kattelox Island com áudio original e resposta rápida de controles.🔗 Repositório
🎮 Star Fox 64 (Starship)PC Port Nativo (Nintendo 64)✅ Janela Confirmada (60 FPS)Janela confirmada. Combate aéreo a 60 FPS nativos com suporte completo a comandos analógicos.🔗 Repositório
🎮 Mario Kart 64 (SpaghettiKart)PC Port Nativo (Nintendo 64)✅ Janela Confirmada (60 FPS)Janela confirmada. Alta taxa de quadros e corridas multiplayer com tempo de resposta imediato.🔗 Repositório
🎮 Super Mario 64 (Ghostship)PC Port Nativo (Nintendo 64)✅ Janela Confirmada (60 FPS)Janela confirmada. Renderização nativa Direct3D/OpenGL com suporte a texturas HD e widescreen.🔗 Repositório
🎮 Perfect DarkPC Port Nativo (Nintendo 64)✅ Janela Confirmada (60 FPS)Janela confirmada. 60 FPS cravados em cenas pesadas com suporte a mouse e analógico duplo.🔗 Repositório
🎮 Animal CrossingGameCube Decomp (GameCube)✅ Janela Confirmada (60 FPS)Janela confirmada. Executável nativo com simulação de relógio de tempo real.🔗 Repositório
🎮 Banjo-Kazooie: Nuts & BoltsRecomp Project (Xbox 360)✅ Janela Confirmada (60 FPS)Janela confirmada via GitHub API. Recompilação estática de binários PowerPC.🔗 Repositório
🎮 Chameleon Twist (versão japonesa)N64Recomp (Nintendo 64)✅ Janela Confirmada (60 FPS)Janela confirmada. Build da edição japonesa com física e dinâmica de língua intactas.🔗 Repositório
🎮 Dragon Ball Z BudokaiPS2 PC Port (PlayStation 2)✅ Janela Confirmada (60 FPS)Janela confirmada. Lutas em arena 3D compiladas para rodar nativamente no Windows.🔗 Repositório
🎮 Infinite Mario 64SM64 PC Port Mod (Nintendo 64 / PC)✅ Janela Confirmada (60 FPS)Janela confirmada. Geração procedural de mundos construída sobre a base de Mario 64.🔗 Repositório
🎮 Jak & Daxter (OpenGOAL)OpenGOAL Project (PlayStation 2)✅ Janela Confirmada (60 FPS)Janela confirmada. Recompilação nativa avançada a partir do código descompilado GOAL.🔗 Repositório
🎮 Quest 64N64Recomp (Nintendo 64)✅ Janela Confirmada (60 FPS)Janela confirmada. O RPG dos quatro elementos executando direto na CPU x64.🔗 Repositório
🎮 REDRIVER 2 (Driver 2)REDRIVER 2 Engine (PlayStation (PS1))✅ Janela Confirmada (60 FPS)Janela confirmada. 60 FPS, distância de visão estendida e suporte a resoluções ultrawide.🔗 Repositório
🎮 Sonic 1 ForeverRetro Engine Port (Mega Drive / PC)✅ Janela Confirmada (60 FPS)Janela confirmada. Formato 16:9 nativo, movimentos modernos opcionais e áudio fiel.🔗 Repositório
🎮 Sonic 3 A.I.R. (Angel Island Revisited)Sonic 3 AIR Engine (Mega Drive / PC)✅ Janela Confirmada (60 FPS)Janela confirmada. Executável nativo com física original e suporte a mods da comunidade.🔗 Repositório
🎮 Sonic Unleashed RecompiledRecomp Project (Xbox 360)✅ Janela Confirmada (60 FPS)Janela confirmada via GitHub API. As fases diurnas do Hedgehog Engine compiladas para PC.🔗 Repositório
🎮 Space Station Silicon ValleyN64Recomp (Nintendo 64)✅ Janela Confirmada (60 FPS)Janela confirmada. O clássico inventivo da DMA Design com bugs de hardware corrigidos.🔗 Repositório
🎮 Super Mario Bros. RemasteredNative C++ Engine (NES / PC)✅ Janela Confirmada (60 FPS)Janela confirmada. Clássico 8-bit com rolagem suave a 60 FPS e resposta sem latência.🔗 Repositório
🎮 Super Mario World (Recompiled)SNES Recomp (Super Nintendo)✅ Janela Confirmada (60 FPS)Janela confirmada. Recompilação estática do processador 65C816 para binário x64 puro.🔗 Repositório
🎮 Super Metroid (Recompiled)SNES Recomp (Super Nintendo)✅ Janela Confirmada (60 FPS)Janela confirmada. Exploração de Zebes em executável nativo com tempo de resposta instantâneo.🔗 Repositório
🎮 Viva Pinata: Trouble in ParadiseRecomp Project (Xbox 360)✅ Janela Confirmada (60 FPS)Janela confirmada via GitHub. Executável nativo recompilado para Windows x64.🔗 Repositório
🎮 WipEout Phantom EditionWipEout PC Port (PlayStation (PS1))✅ Janela Confirmada (60 FPS)Janela confirmada. Corridas antigravitacionais em alta taxa de quadros e iluminação modernizada.🔗 Repositório
🎮 OutRun (CannonBall DX)CannonBall Engine Port (Arcade) (Arcade (MAME))✅ Janela Confirmada (60 FPS)Port nativo do motor CannonBall (não é uma recompilação) para o clássico arcade OutRun da Sega, já cadastrado como port oficial da lista principal e instalado automaticamente via Settings > Ports. Requer o romset outrun.zip do MAME/FinalBurn Neo: o app detecta e copia sozinho se o arquivo já estiver em roms/Arcade ou roms/MAME.🔗 Repositório

Nota: Esta lista é viva e acompanha a evolução constante das comunidades de fãs. Alguns projetos são builds nightly ou experimentais dos desenvolvedores originais e podem sofrer melhorias a cada release.

Vídeo

Os 10 modos de tela

Ordenados do mais suave para o mais forte. Os primeiros mexem só na intensidade da linha; os últimos simulam tipos diferentes de tela.

#ModoO que faz
1Off (Raw)Pixel puro, sem nenhum tratamento.
2Scanlines LeveLinha quase imperceptível. O mais discreto dos que marcam presença.
3CRT Suave (TV)Linha suave mais borda arredondada. Suaviza sem dissolver o pixel art.
4PVM Pro 600TVLLinha nítida com o pixel absolutamente intacto. Monitor profissional.
5Sony TrinitronGrade de abertura, como a TV que dá nome ao modo.
6Arcade ShadowMáscara de sombra de monitor de fliperama.
7Scanlines 50%Linha sim, linha não, na intensidade máxima.
8NTSC CompositeSangramento de cor do sinal composto.
9LCD MatrixGrade de LCD, para o visual de tela portátil.
10Tubo Curvado 3DCurvatura de tubo com vinheta e borda de moldura.

Outros ajustes de vídeo

Aspect RatioOriginal · 4:3 · 16:9

Proporção da imagem dentro da janela.

3D AccelerationDesligado por padrão

Dá ao core um contexto de vídeo acelerado real — OpenGL, Vulkan ou DirectX 11, conforme o que o core pedir. É o que faz N64, Dreamcast e GameCube carregarem, e o motivo do Dreamcast (Flycast) agora rodar com aceleração de hardware de verdade via DirectX 11, algo que não existia antes. Fica opcional porque aceitar também tira o caminho por software que todo core usava antes.

V-SyncLigado · Desligado

Sincroniza a apresentação com o monitor.

SincroniaTaxa do jogo · Taxa do monitor

“Taxa do jogo” roda na frequência original do console. “Taxa do monitor” encaixa na do seu display, o que elimina o repique de quadros quando as duas são próximas.

Latência de áudio16 ms · 32 ms · 64 ms · 128 ms

Buffer de áudio. O padrão é 32 ms.

RetroAchievements

Integração via rcheevos 12.4.0. Login por usuário e senha, token guardado localmente, e a lista de conquistas na tela pelo menu em jogo.

⚠ Um aviso honesto

O RetroAchievements não reconhece este cliente — nos identificamos como KarameloEmu/0.9.2, que não é um emulador registrado lá. O servidor devolve uma entrada de aviso chamada “Warning: Unknown Emulator”. Não sabemos ainda se isso é apenas cosmético ou se impede os desbloqueios de valerem no seu perfil. O teste é ganhar uma conquista e conferir no site.

Carregar jogo pela linha de comando

O executável aceita o caminho de uma ROM como primeiro argumento. Serve para associação de arquivo e para arrastar-e-soltar.

MiSTer_4_ALL.exe "roms\PlayStation\Grand Theft Auto 2 (USA).chd"

Limitações conhecidas

O que não funciona, ou funciona pela metade. Sem rodeios.

GameCube não funciona

Carrega até “Booting from disc” e falha dentro do Dolphin, numa thread dele. O core precisa de contexto OpenGL compartilhado entre threads; o backend atual entrega um contexto por vez. É trabalho arquitetural, não um ajuste.

Mapeamento é global, não por sistema

As teclas e o mapa do controle valem para todos os cores. Não há perfil por console.

Descrições de botão do core são ignoradas

Os cores informam o que cada botão faz naquele jogo (SET_INPUT_DESCRIPTORS) e nós descartamos. Por isso não dá para mostrar “B = pular” por jogo.

Cliente não reconhecido pelo RetroAchievements

Ver o aviso na seção de conquistas. Impacto real ainda não medido.