Gamertag


sábado, 31 de outubro de 2026

A Biblioteca, interlúdio — sete itens, trinta e dois reais e uma aposta

Sete itens. Trinta e dois reais e quarenta e oito centavos. Oitenta e oito por cento de desconto, duzentos e quarenta e três reais economizados. E eu escrevendo uma série sobre organizar uma biblioteca de mil e quatrocentos jogos, no exato momento em que coloco mais seis dentro dela.

Este não é um novo post. O post sobre duplicatas continua de pé, com a coluna GrupoDuplicata ainda vazia esperando a vez.

Este é um interlúdio, e ele existe porque a vida não respeita cronograma de série. Eu passei um bom tempo escrevendo sobre a necessidade de não comprar o que já se tem, e na quinta-feira às 19h55 eu comprei seis jogos de terror de uma vez. Achar isso engraçado é mais produtivo do que fingir que não aconteceu.

O que Thriller fez comigo antes de eu saber o que era um videoclipe

Existe uma coisa na minha relação com terror que eu nunca consegui datar direito, mas sei de onde vem: o Thriller.

Eu era criança. Michael Jackson não era um artista que eu escolhi ouvir — era uma presença, do tipo que existe na casa antes de a gente entender o que é televisão. E aquele vídeo de quatorze minutos, com o John Landis dirigindo e o Rick Baker fazendo as maquiagens, não era um filme de terror. Era outra coisa.

Demorei muitos anos para entender o que aquilo tinha feito comigo. Porque o Thriller não me ensinou a ter medo. Ele me ensinou que o medo podia ser bonito.

Os mortos saem da terra e dançam. Não perseguem, não devoram — dançam, em coreografia, no meio da rua, com o Michael no meio deles. O monstro não é ameaça, é espetáculo. A morte vira número musical. E uma criança que assiste isso aprende uma coisa que não deveria aprender tão cedo: que existe prazer em olhar para o que assusta, desde que alguém esteja conduzindo o espetáculo.

Thriller não me deu medo de monstros. Me deu a certeza de que monstros são interessantes.

Isso ficou. E é por isso que todo outubro, quando as lojas resolvem que é hora de vender terror com desconto, eu fico suscetível de um jeito específico.

Por que outubro, e não abril

Existe uma explicação de mercado, e ela é óbvia: as lojas colocam terror em promoção em outubro porque é o mês em que terror vende. Não preciso explicar isso.

Mas existe uma explicação de outra ordem, e é a que me interessa. Fora de outubro, terror é um gênero de solidão. Você joga sozinho, no escuro, e ninguém ao seu redor compartilha a experiência. É um gênero que se consome escondido, quase com vergonha de admitir que gosta.

Em outubro, o terror vira coletivo. As pessoas decoram casas, fantasiam, assistem as mesmas coisas, comentam. O medo vira ritual social. E é exatamente esse o registro do Thriller — não o susto, a celebração.

Eu compro terror em outubro porque, nesse mês, comprar terror não parece esquisito. Parece participação.

E aí está a ironia que eu só percebi depois de comprar: os jogos que eu levei não têm nada de celebração. São o oposto do Thriller. Em Thriller, os mortos dançam e você assiste, encantado. Em Outlast, você corre e se esconde, e o espetáculo é a sua própria fragilidade.

Comprei o gênero do espetáculo. Levei o gênero da fuga. Vamos ver o que acontece quando eu abrir.

O que chegou na caixa

O recibo, item por item, sem arredondar nada:

Item Preço O que é
Little Misfortune R$ 11,39 Narrativo, point and click, dos criadores de Fran Bow
The Darkness II R$ 4,49 FPS com poderes demoníacos, baseado em quadrinhos
Outlast 2 R$ 4,79 Terror em primeira pessoa, seita, deserto do Arizona
Outlast R$ 3,75 O original. Asilo, câmera com bateria, sem combate
Never Again R$ 3,11 Terror psicológico de casa, indie
Outlast: Whistleblower R$ 2,71 DLC do primeiro, história paralela
The Shore R$ 2,24 Walking sim lovecraftiano numa ilha
Total R$ 32,48 de R$ 276,33

Duas observações que só um inventário produz.

A primeira: Whistleblower é DLC. A decisão que eu deixei pendente no primeiro post — DLC conta como jogo ou é uma coluna do jogo base — acabou de ganhar um caso real, datado e com preço de dois reais e setenta e um centavos. Para a planilha, é uma linha ou uma anotação? Eu ainda não sei. Mas agora eu tenho o exemplo, e isso é melhor que a dúvida abstrata.

A segunda: o recibo diz The Darkness II (ROW). Rest of world, chave de fora do mercado americano. É o mesmo problema de região que eu passei um post inteiro discutindo, aparecendo de novo, agora do lado da compra em vez do lado do emulador. A diferença é que aqui não me custa nada — chave de loja não tem hash para bater.

A aposta

Trinta e dois reais é barato demais para justificar uma compra. Não existe argumento a construir: o valor se defende sozinho, e qualquer texto tentando provar que foi uma decisão inteligente soaria defensivo.

A pergunta boa é outra, e é mais cruel: quantos desses seis eu realmente abro?

Então vou apostar agora, com o recibo ainda quente, e conferir em janeiro. Sem editar depois, sem ajustar a previsão para parecer que eu sabia.

Vou zerar dois. Little Misfortune, porque é narrativo, curto e tem voz própria — o tipo de jogo que se termina numa sentada porque a história puxa. E The Darkness II, porque não é terror de perseguição: é ação com história, do tipo que eu consigo jogar sentado sem tensão. É o menos hostil da lista, apesar de ser o que tem demônios de verdade.

Vou jogar e não terminar dois. Outlast, porque é o mais conhecido e eu vou querer ver com os próprios olhos do que todo mundo fala — mas terror de perseguição pura é o gênero que me expulsa, e eu já sei disso. E The Shore, por curiosidade lovecraftiana: dois reais e vinte e quatro centavos compram exatamente meia hora de atmosfera antes de eu me cansar.

Não vou abrir ou vou abandonar três. Outlast 2, que é mais longo, mais frustrante e mais divisivo que o primeiro — a crítica é unânime em dizer que ele estica o que o original fazia em cinco horas. Never Again, que é o jogo sobre o qual eu sei menos, e a maior incógnita da aposta: comprei no escuro, e no escuro costuma ficar. E Whistleblower, que só existe se eu terminar Outlast — uma aposta condicional, e portanto a mais perdida de todas.

Se eu acertar, são dois zerados de seis. Um terço. Para uma compra de trinta e dois reais, dá dezesseis reais e vinte e quatro centavos por jogo terminado — que é mais do que eu pagaria por qualquer um deles individualmente, e ainda assim menos do que um ingresso de cinema.

É esse o número que eu quero ver em janeiro.

A promoção nunca é sobre o preço do jogo. É sobre o preço do jogo dividido pela chance de você jogá-lo — e esse segundo número ninguém coloca na etiqueta.

O caso Outlast: eu não comprei o jogo, comprei a linha

Tem uma coisa nesta compra que merece parágrafo próprio, porque é a parte que eu não esperava e é a mais reveladora.

Eu já tenho Outlast. No Switch. Ele está lá, na biblioteca, disponível, e eu poderia jogar hoje sem pagar nada.

E paguei três reais e setenta e cinco centavos para ter de novo, no PC.

Não é por causa do jogo. O jogo é o mesmo. Não é por performance, não é por mod, não é por teclado e mouse — e quem já jogou Outlast sabe que teclado e mouse não melhoram em nada a experiência de correr de um homem de dois metros com a cara deformada.

Eu paguei pela conquista.

E aqui é onde eu preciso ser específico, porque a diferença importa: eu não vou platinar Outlast. Provavelmente não vou fazer 100%. Terror de perseguição não é o gênero em que eu me comprometo com desafio — é o gênero em que eu pulo sustos e continuo mesmo assim.

O que eu quero é o zerado. Aquela linha registrada dizendo que eu cheguei ao fim, em tal data, com tal tempo. O registro de que aquilo aconteceu.

É a distinção que eu passei um post inteiro elogiando: zerado e completado são coisas diferentes, e a maioria dos sistemas de conquista só sabe medir a segunda. Quando eu digo que não vou platinar, eu estou dizendo que não vou perseguir o completado — mas o zerado eu quero, e ele vale por si.

Três reais e setenta e cinco centavos não foi o preço de um jogo que eu já tenho. Foi o preço de uma linha na planilha.

Existe um momento na vida de colecionador em que você para de comprar jogos e começa a comprar registros de que jogou. Esse momento chegou para mim numa quinta-feira de outubro, por menos de quatro reais.

E tem uma consequência prática nisso que só ficou clara depois. Os seis são todos Steam. Eles são, literalmente, os únicos jogos da minha biblioteca inteira que vão gerar número de horas, porque a Steam é a única das seis lojas que devolve esse dado. Todo o resto — Epic, GOG, Amazon, EA, Ubisoft — vai continuar sem histórico, por escolha delas.

Ou seja: eu comprei, sem querer, o único lote da minha coleção que é mensurável.

O que o número vai dizer em janeiro

Em janeiro eu volto com três números: quantos eu zerei, quanto tempo eu efetivamente joguei, e quanto custou cada hora.

Só que o terceiro número vai fazer uma pergunta que eu não estou pronto para responder com honestidade. Se eu jogar quinze horas no total dos seis, o custo por hora é de dois reais e dezesseis centavos — mais barato que qualquer coisa que eu faça no computador. Se eu jogar três horas, o custo por hora sobe para quase onze reais, e aí a comparação deixa de ser com cinema e passa a ser com um jogo que eu já tinha e não joguei.

E é aí que este interlúdio encontra a série principal de novo.

Porque a planilha da minha biblioteca tem mais de mil jogos, e o número de horas concentrado nela é sempre o mesmo padrão: cinco ou seis jogos carregam quase tudo, e o resto divide migalhas. Eu não preciso apostar em nada para saber disso — eu só preciso olhar os dados quando eles chegarem.

A aposta que eu fiz acima não é sobre Outlast nem sobre Little Misfortune. É sobre a hipótese mais confortável que um colecionador pode sustentar: dessa vez eu vou jogar.

Veremos.

Comprar é barato. Jogar é o que custa — e é o único custo que não aparece no recibo.

sexta-feira, 30 de outubro de 2026

A Biblioteca #2 — as lojas sabem o que eu fiz, e só uma aceita contar

No post anterior, eu terminei com uma planilha feia e quatro colunas vazias. Duas delas eu preenchi sem dificuldade. As outras duas me obrigaram a admitir uma coisa incômoda: a minha biblioteca sabe o que eu tenho. Ela não sabe nada sobre o que eu fiz.

Onde o post 1 parou

Vale recapitular, porque o resto deste texto depende disso.

No primeiro post eu exportei o meu LaunchBox para um CSV. Saíram todas as linhas que ele tinha, com título, plataforma, caminho de execução, gênero, desenvolvedor. Deduzi a loja pelo caminho de instalação — Steam, Epic, GOG, Amazon — e a coluna de appid veio de brinde, porque o caminho de execução da Steam já traz o número.

O resultado foi uma planilha com a minha coleção inteira, cada linha sabendo de onde veio. A posse está resolvida. Não preciso voltar a esse assunto, e não vou.

Sobraram quatro colunas vazias: Conquistas, Progresso, Prioridade e GrupoDuplicata. E é aqui que o projeto tropeça, porque essas quatro colunas não são preenchíveis pelo mesmo caminho que eu usei até agora.

O post 1 respondeu "o que eu tenho". O post 2 precisa responder "o que eu fiz" — e são perguntas de naturezas completamente diferentes.

A distinção que destrava tudo

Existem duas perguntas numa biblioteca, e eu levei tempo para separar as duas.

A primeira é posse: o que eu tenho, em qual loja, em qual plataforma. Ela é estável, muda pouco, e o LaunchBox resolveu bem — porque foi exatamente para isso que eu o usei durante anos. Ele era o meu verificador de compra. Abria antes de aproveitar uma promoção para saber se o jogo já estava em alguma outra loja.

A segunda é uso: quanto tempo eu passei, quando foi a última vez, quantas conquistas eu tenho. Ela muda o tempo todo, e não existe nenhum lugar onde eu a tenha centralizado. Nunca existiu.

O LaunchBox tem os campos de tempo e de último acesso no XML. Estão todos vazios — e a razão é simples: eu nunca abri um jogo por ele. Eu abro pela loja. Ele registrou o catálogo, nunca o uso.

Isso não é falha do programa. É consequência do jeito que eu usei. E agora que eu sei a diferença, o problema fica bem menor do que parecia: eu não preciso redescobrir minha biblioteca. Eu preciso enriquecer a planilha que já existe com um dado que está em outro lugar.

Steam: a única que responde

Para jogo digital, quem sabe o que você fez é a loja. Ela precisa saber — é assim que ela mede engajamento, recomenda o próximo título e decide o que entra em promoção.

Só que entre as seis lojas da minha biblioteca, apenas uma devolve esse dado de forma aberta. E não é coincidência que seja a Steam.

O caminho é curto. Você pega a chave em steamcommunity.com/dev/apikey, pega o seu SteamID64, e faz uma chamada. Ela devolve a lista completa de jogos da conta, cada um com appid, nome, minutos totais jogados e timestamp do último acesso.

Tem um detalhe que trava muita gente e não aparece na maioria dos tutoriais: o seu perfil precisa estar com Game details em público. Fica em Perfil > Editar perfil > Configurações de privacidade. Se estiver privado, a API não devolve erro — devolve uma lista vazia. E você fica caçando problema no script quando o problema está na privacidade.

import csv, json, time, urllib.request, urllib.parse

API_KEY  = "SUA_CHAVE_AQUI"
STEAM_ID = "SEU_STEAMID64_AQUI"

url = "https://api.steampowered.com/IPlayerService/GetOwnedGames/v1/?" + urllib.parse.urlencode({
    "key": API_KEY,
    "steamid": STEAM_ID,
    "include_appinfo": 1,
    "include_played_free_games": 1,
    "format": "json",
})

with urllib.request.urlopen(url) as r:
    dados = json.load(r)

jogos = dados.get("response", {}).get("games", [])

if not jogos:
    print("Lista vazia. Confira: perfil publico? chave certa? SteamID64 certo?")
    raise SystemExit

with open("steam.csv", "w", newline="", encoding="utf-8-sig") as fh:
    w = csv.writer(fh, delimiter=";")
    w.writerow(["AppID", "Titulo", "MinutosTotais", "Horas", "UltimoAcesso"])

    for j in jogos:
        minutos = j.get("playtime_forever", 0)
        ultimo  = j.get("rtime_last_played", 0)
        data    = time.strftime("%Y-%m-%d", time.localtime(ultimo)) if ultimo else ""
        w.writerow([j["appid"], j.get("name", ""), minutos, round(minutos / 60, 1), data])

print("Steam: {} jogos exportados".format(len(jogos)))

Esse é o único script deste post que devolve um dado que eu nunca tive em lugar nenhum. Minutos jogados, por jogo, sem eu ter aberto nada por launcher nenhum.

E repare no que ele não faz: ele não descobre o que eu tenho. Eu já sei o que eu tenho — está no CSV do post anterior. Ele só traz o que falta.

Por que as outras cinco não respondem

Aqui eu poderia escrever cinco seções técnicas, uma por loja, e seria um texto chato e meio inútil.

O que importa é o padrão: nenhuma das outras cinco devolve histórico de uso. Não é uma questão de dificuldade minha, de ferramenta faltando ou de script mal escrito. É uma decisão de produto de cada uma delas.

A GOG guarda a biblioteca num banco local, mas o banco tem o catálogo, não o histórico. A Epic e a Amazon mantêm dados locais que descrevem o que está instalado — e instalado não é a mesma coisa que possuído, nem de longe a mesma coisa que jogado. EA e Ubisoft não mantêm nada que separe essas três coisas.

Isso não me atrapalha na posse, e é importante deixar isso claro porque era onde eu tinha me perdido antes: a posse das seis já está na planilha, vinda do LaunchBox. Eu não preciso de API nenhuma para saber que tenho o jogo. Eu preciso de API para saber o que fiz com ele — e aí, só a Steam entrega.

De seis lojas, uma me diz quanto tempo eu joguei. E ela não é a que tem a maior parte da minha biblioteca.

Juntando sem refazer

Com o CSV da Steam em mãos, a etapa final é cruzar com a planilha do post 1 — e o appid que eu já tinha extraído do caminho de execução mostra o valor dele aqui. Os jogos da Steam casam exato, sem depender de nome.

Para os que não têm appid, o casamento é por título normalizado — sem parênteses, sem marca registrada, sem pontuação, tudo em minúsculas.

import csv, re

def norm(t):
    t = (t or "").lower()
    t = re.sub(r"(?:\s*[\(\[].*?[\)\]])", " ", t)   # remove parenteses e colchetes
    t = re.sub(r"[™®©]", " ", t)
    t = re.sub(r"[^a-z0-9 ]", " ", t)
    return re.sub(r"\s+", " ", t).strip()

# 1) indice da Steam
por_appid, por_titulo = {}, {}
with open("steam.csv", encoding="utf-8-sig") as fh:
    for l in csv.DictReader(fh, delimiter=";"):
        por_appid[l["AppID"]] = l
        por_titulo[norm(l["Titulo"])] = l

# 2) a planilha do post anterior
with open("biblioteca_launchbox.csv", encoding="utf-8-sig") as fh:
    linhas = list(csv.DictReader(fh, delimiter=";"))

campos = list(linhas[0].keys())
if "Fonte" not in campos:
    campos.append("Fonte")

por_id = por_nome = sem_par = 0

for l in linhas:
    appid = (l.get("AppID") or "").strip()
    s = por_appid.get(appid) if appid else None

    if s:
        por_id += 1
    else:
        s = por_titulo.get(norm(l.get("Titulo")))
        if s:
            por_nome += 1

    if s:
        l["Loja"] = "Steam"
        l["AppID"] = l["AppID"] or s["AppID"]
        l["TempoJogado"] = s["Horas"]
        l["UltimoAcesso"] = s["UltimoAcesso"]
        l["Fonte"] = "Steam API"
    else:
        l["Fonte"] = l.get("Fonte") or ""
        sem_par += 1

with open("biblioteca_enriquecida.csv", "w", newline="", encoding="utf-8-sig") as fh:
    w = csv.DictWriter(fh, fieldnames=campos, delimiter=";", extrasaction="ignore")
    w.writeheader()
    w.writerows(linhas)

print("casados por AppID ....", por_id)
print("casados por titulo ...", por_nome)
print("sem correspondencia ..", sem_par)

Rode e você tem, pela primeira vez, uma planilha em que cada linha sabe de onde veio e, quando é Steam, quanto tempo você gastou nela.

Os "sem correspondência" não são erro. São os jogos das outras cinco lojas, mais eventuais diferenças de nome na Steam. Eles ficam com a coluna Fonte vazia, o que já é uma informação: significa "existe, mas sem histórico disponível".

Os números que aparecem

Com a coluna preenchida, três perguntas que eu não conseguia responder desde o primeiro post ficam respondíveis.

A primeira: quantos jogos da Steam eu nunca abri? Zero minuto é zero minuto. Não é estimativa, não é memória — é registro. E o número costuma ser maior do que a gente imagina.

A segunda: quais eu abri e nunca mais voltei? Último acesso de 2019, dois minutos jogados. Esses são os que a promoção vendeu e a vida não deixou jogar.

A terceira: onde estão as minhas horas de verdade? Provavelmente concentradas em cinco ou seis jogos, enquanto os outros mil e tantos dividem as migalhas. Isso muda a leitura da coleção inteira: o tamanho da biblioteca não mede nada, porque o uso é sempre concentrado.

Mil e quatrocentos jogos é um número de catálogo. Cinco jogos com trezentas horas é um retrato de quem eu sou como jogador.

A assimetria e o que ela muda na prática

Eu esperava que este post fosse sobre scripts. Ele acabou sendo sobre uma coisa mais desagradável.

Os jogos que eu tenho na Steam são os únicos que eu consigo avaliar com números. Os outros eu avalio por memória — e memória, num inventário, é uma fonte péssima. Eu já escrevi isso em outro post e continuo achando.

O efeito prático é meio injusto: uma biblioteca da Epic com duzentos jogos parece menor do que uma biblioteca da Steam com cem, porque a primeira não gera número. E o que não gera número, na prática, não existe.

Isso já está mudando uma coisa na minha forma de comprar, e é a primeira consequência real do projeto: promoção boa numa loja que não registra vale menos do que a mesma promoção numa loja que registra. Não por preferência de marca — por informação. O jogo que entra pela Steam entra na planilha com histórico. O que entra por outra loja entra como uma linha de nome.

O que vem depois

A planilha agora tem tempo, último acesso e uma coluna Fonte que diz de onde cada linha veio. Duas das quatro colunas vazias do post 1 continuam vazias — Conquistas e GrupoDuplicata.

A de conquistas é a próxima e é a mais trabalhosa, porque não vem de loja: vem do RetroAchievements para o retrô e de cada plataforma para o resto. Já sei como fazer, e o ano de RetroAchievements que eu carrego nas costas vai ajudar.

Mas a que está me incomodando agora, e que virou o assunto do post 3, é a GrupoDuplicata. Porque agora que cada linha sabe de onde veio, o que estava escondido fica visível: o mesmo jogo em duas lojas, o remaster que substitui o original, a versão com conquistas e a versão sem.

E aí eu vou ter que responder a pergunta que a planilha faz e não responde sozinha: das três versões, qual é a boa?

A biblioteca só começa a existir quando cada linha sabe de onde veio. Depois disso, ela começa a fazer perguntas que você não queria responder.

quinta-feira, 29 de outubro de 2026

RetroAchievements para iniciantes — o que ninguém explica

O jogo rodou perfeito. Imagem limpa, som certo, controle respondendo. E o RetroAchievements não reconheceu nada. Nenhuma conquista, nenhum aviso, nenhuma explicação — como se o jogo não existisse. Este é o guia que eu queria ter lido naquele dia.

O erro que todo mundo comete na primeira semana

Existe uma expectativa natural quando você instala um emulador: você abre a ROM e o jogo funciona. É assim desde sempre. O emulador lê o arquivo, executa, pronto. Se o arquivo estiver corrompido, ele reclama. Se estiver certo, ele roda.

Quando você conecta o RetroAchievements ao emulador, essa lógica continua valendo para rodar o jogo. Mas passa a existir uma segunda camada, independente, que não tem nada a ver com o emulador conseguir abrir o arquivo. Essa camada pergunta outra coisa: este arquivo específico é o arquivo que eu conheço?

E é aí que a maioria das pessoas trava, porque o jogo roda perfeitamente e não funciona. Não há erro. Não há mensagem. Só silêncio.

Eu passei por isso. E o que descobri é que o problema não estava no emulador, nem na configuração, nem na conta. Estava no arquivo — mais especificamente, em qual arquivo era.

O emulador pergunta "eu consigo rodar isso?". O RetroAchievements pergunta "eu conheço isso?". São duas perguntas diferentes, e a segunda é muito mais exigente.

O conceito que resolve tudo: o hash

Se você entender uma única coisa neste post, que seja esta.

O RetroAchievements não reconhece jogos. Ele reconhece arquivos.

Cada jogo no site é identificado por uma impressão digital do arquivo — o hash MD5, um código calculado a partir do conteúdo byte a byte. Não importa o nome do arquivo, não importa a pasta onde ele está, não importa o que aparece na tela do emulador. Importa o conteúdo exato.

E isso tem uma consequência que explica praticamente todos os problemas que você vai encontrar: qualquer alteração de um byte muda o hash. Qualquer uma. Um caractere de texto trocado. Um cabeçalho adicionado. Um patch aplicado. Uma compressão diferente. Tudo isso produz um arquivo que, para o RetroAchievements, é um arquivo novo — e desconhecido.

Não existe "Super Mario World" como entidade abstrata. Existem dezenas de arquivos diferentes que se chamam Super Mario World, e cada um tem uma impressão digital própria. O RA conhece algumas delas. As outras, não.

Você não coleciona jogos. Coleciona arquivos específicos — e só alguns deles existem para o RetroAchievements.

O meu setup, para você entender de onde eu falo

Antes de seguir para os problemas, vale dizer em que terreno eu ando, porque isso muda o que você vai encontrar.

Eu uso RetroArch para praticamente todos os emuladores. Instalo o RetroArch pela Steam, e isso me dá uma vantagem prática que não tem nada a ver com emulação: o Steam Input. Os controles são reconhecidos pelo sistema da Steam, com perfis, mapeamentos e correções que eu já tenho prontos. Para quem tem mais de um controle e mais de um console emulado, isso economiza uma quantidade absurda de configuração repetida.

A exceção é o Nintendo Wii, que eu rodo no Dolphin. E a razão é a mesma que aparece em outros posts daqui: a NAND. Emular Wii exige uma estrutura de console que o RetroArch não entrega do mesmo jeito, e o Dolphin resolve isso melhor. Então o Wii fica fora do RetroArch, com configuração própria.

Até agora, todos os jogos que eu joguei fora do Wii o RetroArch resolveu completamente. O que significa que a maior parte deste guia vale exatamente para o seu caso, se você usa RetroArch.

Os três motivos pelos quais o seu arquivo não é reconhecido

Quando a ROM não é reconhecida, a causa é sempre uma de três. Elas produzem o mesmo sintoma — silêncio — mas exigem soluções diferentes.

Região. USA, Europe, Japan. São arquivos distintos, com hashes distintos, e às vezes com sets distintos. E existe um detalhe cruel que pega muita gente: em alguns jogos, só a versão japonesa tem conjunto de conquistas completo. O jogo que você conhece, na versão que você tem, pode não ter set nenhum.

Revisão. Rev 0, Rev 1, Rev A, v1.1. Um conjunto construído sobre a Rev 0 não reconhece a Rev 1, mesmo que a diferença entre as duas seja um bug corrigido que você nunca vai notar. O jogo parece idêntico. O arquivo não é.

Modificação. Tradução, hack, patch de correção, cabeçalho adicionado ou removido. É o motivo mais comum e o mais frustrante, e merece uma seção própria.

A ironia da tradução

Aqui está a parte que dói, e ela tem uma ironia que se explica sozinha.

Traduzir um jogo é exatamente o trabalho que quebra o suporte.

O tradutor precisa alterar os bytes do texto dentro do arquivo. Alterar bytes altera o hash. Alterar o hash faz o arquivo deixar de ser aquele que o RetroAchievements conhece. Ou seja: a versão que você consegue ler é, por definição técnica, uma versão diferente da que o RA reconhece.

Não é falha de ninguém. É a natureza do sistema. O RA precisa garantir que ninguém está trapaceando com uma ROM alterada, e a única forma de garantir isso é ser rígido com o arquivo.

Mas aqui vem a boa notícia, e ela é melhor do que eu esperava quando comecei: algumas traduções funcionam.

Existem patches que foram registrados oficialmente no conjunto. Existem sets construídos já considerando a versão traduzida. Existem casos em que o autor do conjunto aceitou o arquivo modificado como hash válido. Não é a regra, mas acontece — e quando acontece, é uma surpresa boa de verdade.

Eu já encontrei jogos em que a versão em português funcionou sem nenhum esforço. Abri, rodou, as conquistas começaram a aparecer. Para quem cresceu jogando o que dava para jogar, sem entender nada do texto, isso tem um peso que vai além da conveniência.

Na maioria das vezes, a tradução quebra o suporte. Em algumas, ela passa. E quando passa, é uma das melhores sensações que a emulação pode dar.

O passo invertido: verifique antes de rodar

Esta é a parte mais útil do post, e é uma mudança de hábito que resolve o problema inteiro.

O instinto é rodar o jogo e ver se as conquistas aparecem. Está errado. Não porque não funcione, mas porque você descobre a resposta depois de perder tempo — e, pior, depois de criar expectativa.

O certo é o caminho inverso: abra a página do jogo no RetroAchievements antes de abrir o emulador.

Na página de cada jogo existe uma seção que lista todos os arquivos aceitos, com o hash de cada um, identificados por região e revisão. É ali que está a resposta. Se o seu arquivo estiver na lista, vai funcionar. Se não estiver, não vai — e você já sabe disso sem ter aberto nada.

Isso muda completamente a experiência. Em vez de tentar e falhar, você consulta e decide. Precisa de dois minutos, e economiza tardes.

E existe o caminho contrário, igualmente útil: se você tem um arquivo e não sabe o que ele é, existe uma busca por hash no site. Você calcula o hash do seu arquivo, joga na busca, e descobre a qual jogo ele corresponde, com região e revisão. Serve tanto para identificar arquivos antigos com nome trocado quanto para confirmar que o seu arquivo é o que você pensa que é.

Para calcular o hash no Windows, sem instalar nada, o próprio sistema resolve:

certutil -hashfile "Caminho\Do\Jogo.sfc" MD5

Ele devolve uma sequência de trinta e dois caracteres. É essa sequência que você compara com a lista da página do jogo, ou cola na busca do site.

Não rode a ROM para descobrir se ela tem conquistas. Abra a página e descubra se você tem a ROM certa.

Os detalhes que ninguém menciona

Estes são os problemas que aparecem depois que você já entendeu o básico, e que fazem a pessoa procurar solução no lugar errado.

O cabeçalho de SNES. Arquivos .sfc e .smc podem conter, ou não, um cabeçalho de 512 bytes no início. Header presente e header ausente geram hashes diferentes, e dependendo do conjunto o RA espera um dos dois. Se o seu arquivo é o mesmo jogo e mesmo assim não bate, suspeite disso primeiro.

PlayStation 1 e o par cue/bin. O arquivo de dados sozinho não basta. O .cue aponta para as faixas, e a estrutura toda importa. E o multidisc traz um problema próprio: cada disco tem seu hash, e carregar o disco errado pode significar progresso não registrado. Vale organizar com .m3u desde o começo.

CHD não é uma garantia. Comprimir para .chd economiza espaço e às vezes não muda nada, mas em vários casos o hash deixa de corresponder ao que o conjunto espera. Não assuma que funciona só porque o jogo abre.

BIOS não é o mesmo problema. BIOS faltando gera erro claro, mensagem, jogo que não abre. Arquivo com hash errado gera silêncio, jogo que abre e não registra. Confundir os dois faz a pessoa reinstalar BIOS por horas quando o problema era outro.

Softcore e Hardcore. Os dois modos existem, e a diferença importa. No Hardcore não há save state, não há rebobinamento, e as conquistas valem mais. No Softcore você joga com as comodidades e as conquistas contam menos. Não existe modo certo — existe a escolha entre a experiência confortável e a experiência com peso.

Nem todo jogo tem conjunto. A maior parte da biblioteca não tem. Você joga normalmente, sem registro, e isso não é erro de configuração. É só ausência de set.

Conjuntos são revisados. Um autor pode refazer um conjunto, e conquistas que existiam podem desaparecer ou mudar de valor. Nunca é uma perda grande, mas acontece.

O bônus que eu não esperava: zerado e completado

Existe uma vantagem do RetroAchievements sobre os outros sistemas de conquistas que eu uso, e ela só apareceu na prática.

O RA não registra apenas conquistas. Ele registra duas coisas separadas: se você zerou o jogo, e se você o completou.

Zerar significa cumprir as condições que o conjunto define como conclusão da campanha — chegar ao final da história, vencer o chefe final, ver os créditos. Completar significa fazer tudo, incluindo as conquistas secundárias, os desafios paralelos, os segredos. São dois estados, não um.

Isso resolve um problema que eu nunca tinha conseguido nomear nos outros sistemas. A conquista sozinha não me dizia se eu havia terminado o jogo ou apenas acumulado objetivos. Um jogo com 40% de conquistas pode estar zerado e incompleto, ou pode estar 40% jogado e longe do fim. Sem a distinção, o percentual é ambíguo.

Com zerado e completado separados, eu tenho duas informações onde antes havia uma. E, na prática, isso muda como eu escolho o que jogar: eu posso perseguir o zerado de um jogo longo sem me comprometer com a completude, ou decidir que aquele jogo merece os dois. É uma decisão que antes eu tomava no escuro.

Um número só me dizia quanto eu tinha feito. Dois números me dizem o que eu terminei e o que eu esgotei — e essas são coisas diferentes.

O que isso ensina sobre a sua biblioteca

Existe uma conexão entre tudo isso e a organização de uma biblioteca grande, e ela é direta.

Quando eu comecei a inventariar a minha coleção, o problema era saber quantos jogos eu tinha. A resposta dependia de decidir o que conta como um jogo — duplicatas, versões, remasters, regiões.

O RetroAchievements resolve esse mesmo problema por outro caminho, e de forma mais brutal: ele só reconhece arquivos. Então mil jogos na planilha podem significar trezentos arquivos reconhecidos, e o resto existe sem registro, sem conquista, sem histórico.

É a mesma pergunta — o que é um jogo? — só que respondida por um sistema que não tem nenhuma paciência com ambiguidade. Ele não negocia. Ou o byte bate, ou não bate.

De certa forma, é uma lição de organização. Uma biblioteca de mil linhas não vale nada se as linhas não correspondem a coisas distintas. E o hash, no fundo, é o mesmo princípio: cada coisa tem uma identidade única, e o resto é nome.

O RetroAchievements não me ensinou a jogar melhor. Me ensinou que nome de arquivo é ficção, e que identidade é conteúdo.

O guia em uma frase

Se você esquecer tudo o que leu, guarde isto: o RetroAchievements reconhece arquivos, não jogos. Todo o resto — região, revisão, tradução, cabeçalho, CUE, CHD — é consequência disso.

E, na prática, a única mudança de hábito que importa é esta: abra a página do jogo antes de abrir o emulador. Dois minutos de consulta contra uma tarde de tentativa.

O resto vem sozinho. Você escolhe a ROM certa, abre o jogo, e as conquistas começam a aparecer na tela. E quando uma tradução funciona — quando aparece aquele jogo em português que você achava que nunca ia poder zerar com registro — vale a pena o trabalho todo.

O jogo que rodou perfeito e não registrou nada não estava quebrado. Ele só não era o arquivo que o RetroAchievements conhecia.

quarta-feira, 28 de outubro de 2026

Wii Fit no Dolphin — o guia definitivo (Balance Board, NAND e unidades corretas)

Procedimento completo para jogar Wii Fit no Dolphin com a Balance Board física, os Miis do console, o save original e as medidas em quilos.

O que este guia resolve

O Wii Fit dentro do Dolphin não é apenas "abrir a ISO e jogar". Faltam três coisas quando se tenta o caminho curto: os Miis, as configurações de sistema e o reconhecimento da placa física. Este guia percorre as sete etapas necessárias para chegar ao resultado completo.

A ordem importa. Fazer a etapa 4 antes da 3, ou a 3 antes da 2, costuma produzir save corrompido ou placa não reconhecida.

  • Etapa 1: backup completo da NAND do Wii (BootMii)
  • Etapa 2: extração do disco do jogo (CleanRip)
  • Etapa 3: importação da NAND no Dolphin
  • Etapa 4: instalação do jogo e das DLCs de WiiWare
  • Etapa 5: conexão da Balance Board física
  • Etapa 6: conferência de unidades e região
  • Etapa 7: diagnóstico de problemas

Requisitos

Item Detalhe
Wii com Homebrew Channel Necessário para rodar BootMii e CleanRip
Cartão SD FAT32, 600 MB livres no mínimo. Cartão de marca conhecida (SanDisk, Samsung, Kingston) — o BootMii é exigente com compatibilidade
Balance Board física O Dolphin não emula a placa. Sem ela, o Wii Fit não passa da tela inicial
Bluetooth no PC Interno ou adaptador USB. Adaptador dedicado é o caminho mais estável
Dolphin atualizado Versão de desenvolvimento recente. As builds antigas não têm suporte completo à placa
Disco do Wii Fit O seu próprio disco. Extrair do original elimina o problema de incompatibilidade de região com o save

Etapa 1 — Backup da NAND no Wii

O backup da NAND é o que traz Miis, configurações, canais e o save do Wii Fit de uma só vez. Sem ele, você terá o jogo sem a sua identidade dentro dele.

1.1 — Preparar o BootMii

O BootMii precisa estar instalado. Se você já tem o Homebrew Channel, abra o HackMii Installer e instale o BootMii. A instalação como boot2 é a preferível em consoles compatíveis, porque roda antes do Menu Wii.

1.2 — Corrigir a tela preta com LED azul piscando

Se ao escolher Launch BootMii a tela ficar preta e a luz azul do drive piscar, o problema não é o console: faltam os arquivos do BootMii no cartão SD.

Baixe o pacote oficial de arquivos do BootMii e extraia na raiz do cartão SD. A estrutura precisa ficar assim:

/SD/
├── bootmii/
│   ├── armboot.bin
│   └── ppcboot.elf

Depois de copiar, recoloque o cartão no Wii e repita o processo. O menu do BootMii deve aparecer.

Se a tela continuar preta mesmo com os arquivos no lugar, troque o cartão SD. O BootMii falha em determinados modelos, especialmente adaptadores de microSD baratos.

1.3 — Fazer o backup

  1. Ligue o Wii e abra o Homebrew Channel
  2. Aperte HOME e escolha Launch BootMii
  3. Navegue com o botão Power (circular) e selecione com o botão Reset, ou use o Wiimote
  4. Selecione o ícone de engrenagem (Options)
  5. Selecione o primeiro botão à esquerda — é o BackupMii
  6. Aguarde. O processo grava nand.bin e keys.bin no cartão

O backup leva de 15 minutos a 1 hora, dependendo do cartão. A luz do drive continua piscando durante todo o processo — isso é normal.

Verificação obrigatória: antes de sair do BootMii, confirme na tela que o processo terminou sem erro. Depois, no PC, verifique se o nand.bin existe e se não está com 0 bytes. Um arquivo vazio significa que o backup falhou e precisa ser refeito com outro cartão.

1.4 — Desativar a parada no BootMii (opcional)

Se o BootMii está instalado como boot2, o Wii para nele a cada inicialização. Para ir direto ao Menu Wii, edite o arquivo SD:/bootmii/bootmii.ini:

VIDEO=NTSC
AUTOBOOT=SYSMENU
BOOTDELAY=0

O BootMii continua acessível pelo Homebrew Channel (HOME > Launch BootMii), então você não perde a rede de segurança.

Etapa 2 — Extrair o disco do jogo

Use o CleanRip no próprio Wii. Ele faz dump completo e verifica o checksum contra o banco Redump.

2.1 — Formato de saída

  • Partição NTFS ou exFAT: grave em ISO direto. É o formato 1:1
  • Partição FAT32: grave em WBFS. O FAT32 tem limite de 4 GB por arquivo e o ISO do Wii Fit passa disso

2.2 — Converter para RVZ

O RVZ é o formato nativo do Dolphin, com compressão sem perda. Se você gravou em WBFS, a conversão acontece dentro do próprio emulador:

Dolphin > botão direito no jogo > Convert File > RVZ

O Dolphin lê ISO, WBFS e RVZ. Nenhum deles afeta o funcionamento da Balance Board nem o save. Evite apenas versões "scrubbed" de terceiros — o dump próprio elimina qualquer dúvida.

Detalhe que resolve a região: extraindo do seu próprio disco, a região do jogo será automaticamente a mesma do seu save e da sua NAND. Isso elimina de saída o problema mais comum de importação.

Etapa 3 — Importar a NAND no Dolphin

Com o cartão SD em mãos, copie o nand.bin e o keys.bin para o PC. No Dolphin:

Tools > Import BootMii NAND Backup

Selecione o nand.bin. O Dolphin descriptografa e monta a memória inteira: Miis, canais, configurações de sistema e saves.

Atenção: a importação substitui a NAND atual do Dolphin. Se você já instalou outros títulos ou criou saves no emulador, faça backup antes.

Tools > Manage NAND > Open NAND Directory
(copie a pasta inteira para um local seguro antes de importar)

Depois da importação, abra o Menu Wii no Dolphin para conferir:

Tools > Load Wii System Menu

O canal do Wii Fit deve estar lá, junto com os seus Miis.

Etapa 4 — Instalar o jogo e as DLCs de WiiWare

Esta etapa é obrigatória para títulos de WiiWare, como o Wii Fit Channel ou qualquer jogo baixado da loja. Se você roda o WAD direto, o título é montado como disco e nunca entra na NAND — e é na NAND que a DLC mora.

4.1 — Instalar o jogo

Dolphin > botão direito no arquivo .wad > Install to NAND

O título passa a aparecer como entrada instalada, sem caminho de arquivo. Isso confirma que a instalação funcionou.

4.2 — Copiar a DLC

DLC de WiiWare não fica no save. Ela mora em duas pastas dentro da NAND, ambas com o prefixo 00010005:

title/00010005/<id_do_jogo>/    → conteúdo da expansão
ticket/00010005/<id_do_jogo>/   → licença de uso

O <id_do_jogo> é o ID4 do jogo com o primeiro caractere em minúsculo — é assim que a Nintendo nomeia as pastas de DLC. Copie as duas do backup da NAND para a NAND do Dolphin, no mesmo caminho.

Sem a pasta ticket, o jogo enxerga o conteúdo mas não reconhece que você tem direito a ele.

4.3 — Ordem de instalação

Instale a DLC antes de carregar o save. Se o save foi criado com conteúdo de DLC e o jogo abrir sem ela, o carregamento falha ou exibe conteúdo faltando — e o sintoma parece save corrompido, quando só faltava a licença.

Etapa 5 — Conectar a Balance Board

O Dolphin não simula a Balance Board. Ela precisa existir fisicamente.

5.1 — Configuração básica

  1. Abra Controllers nas configurações do Dolphin
  2. Na área de Wii Controllers, marque Real Balance Board
  3. Ative Continuous Scanning na configuração do Wii Remote
  4. Segure o botão sync da placa até ela parear

A placa aparece como um Wii Remote especial. Não é necessário mapear botões.

5.2 — Quando o Windows "rouba" o pareamento

Sintoma: a placa conecta no Bluetooth do Windows, mas o Dolphin não a reconhece.

  1. Abra as configurações de Bluetooth do Windows
  2. Remova o dispositivo Balance Board da lista
  3. Volte ao Dolphin e faça o pareamento por ele

O Windows trata a placa como dispositivo de entrada e reserva a conexão. O Dolphin precisa gerenciar o pareamento sozinho.

5.3 — Bluetooth Passthrough (caminho mais fiel)

Entrega um adaptador Bluetooth USB inteiro ao Dolphin, com comportamento idêntico ao do console. Requer um adaptador dedicado, que não será usado pelo Windows.

  1. Descubra o VID e o PID do adaptador no Gerenciador de Dispositivos
  2. Abra Config > Wii
  3. Adicione o adaptador em Whitelisted USB Passthrough Devices
  4. Mapeie uma tecla em Hotkey Settings > Wii and Wii Remote > Press Sync Button
  5. Ative o modo passthrough e sincronize a placa com essa tecla

Etapa 6 — Conferir unidades e região

Se você importou a NAND, as configurações de sistema vieram junto e o jogo já abre em quilos e centímetros. Nada a fazer.

Se algo ainda aparecer em libras ou polegadas, verifique nesta ordem:

  1. Unidades do sistema: Menu Wii > Wii Options > Console Settings
  2. Unidades dentro do jogo: Wii Fit > Settings > Units
  3. Região: a ISO precisa ser da mesma região da NAND. Save de console americano não carrega em ISO europeia

Etapa 7 — Diagnóstico de problemas

Sintoma Causa Solução
Tela preta + LED azul piscando no BootMii Arquivos do BootMii ausentes no SD Extrair o pacote na raiz do cartão (pasta bootmii)
BootMii não abre nem com os arquivos Cartão SD incompatível Trocar por cartão de marca, FAT32, até 32 GB
nand.bin com 0 bytes Falha de escrita no cartão Refazer o backup com outro cartão
Wii Fit sem os Miis NAND não importada Importar o backup BootMii completo
Jogo pede peso em libras Configuração de sistema em NTSC-U Ajustar em Console Settings, ou reimportar a NAND
Save não carrega Região da ISO diferente da NAND Usar o dump do próprio disco
Conteúdo de DLC faltando Jogo rodando direto do WAD ou ticket ausente Instalar na NAND e copiar title + ticket
Placa conecta no Windows mas não no Dolphin Pareamento gerenciado pelo sistema Remover o dispositivo do Windows e parear pelo Dolphin
Placa não aparece na lista Continuous Scanning desativado Ativar nas opções de Wii Remote
Jogo trava na tela de seleção de Mii Mii original não existe na NAND Reimportar a NAND ou recriar o Mii no Mii Channel

Checklist final

  • Backup da NAND feito e verificado (arquivo maior que 0 bytes)
  • bootmii.ini configurado, se quiser boot direto no Menu
  • Disco extraído do próprio console, em ISO ou RVZ
  • NAND importada no Dolphin e Menu Wii funcional
  • Jogo de WiiWare instalado na NAND, não rodando do WAD
  • DLC copiada nas pastas title e ticket
  • DLC instalada antes de carregar o save
  • Real Balance Board ativada com Continuous Scanning
  • Placa pareada pelo Dolphin, não pelo Windows
  • Unidades em quilos confirmadas

Com as sete etapas concluídas, o Wii Fit abre no PC com o mesmo perfil do console: o Mii correto, o histórico de peso, as medidas em quilos e a placa respondendo como respondia na sala.

terça-feira, 27 de outubro de 2026

Papo na Fogueira — a fogueira continua acesa

Existe uma diferença entre apagar uma fogueira e simplesmente deixar de alimentá-la por um tempo. Este post é sobre a segunda coisa.

1. O formato que nasceu de uma ligação

O Papo na Fogueira nunca teve pauta. Nunca teve pauta, nunca teve duração definida, nunca teve tema obrigatório, nunca teve aquela estrutura de reunião que transforma encontro em compromisso. Ele nasceu de uma conexão entre mim e dois amigos, sem nenhuma pretensão de virar série.

A ideia era simples e por isso mesmo funcionou: a gente marcava um horário, e conversava. Sobre o que estivesse acontecendo. Sobre o que tivesse ficado na cabeça durante a semana. Sobre séries, sobre trabalho, sobre nada em particular, sobre aquelas coisas que só aparecem quando ninguém está com pressa de encerrar.

O que saía daquilo virava texto aqui no blog. E o texto, por sua vez, não era uma ata do encontro. Era uma tradução. Algo da ordem da conversa — o ritmo, o desvio, a pausa antes de uma frase importante — virava palavra escrita alguns dias depois.

Foi assim que o Papo na Fogueira se tornou uma série. Não por planejamento. Por repetição.

Algumas séries nascem de um projeto. Outras nascem de um hábito que ninguém percebeu que estava se formando.

2. O espaço fixo

Existe uma coisa curiosa nos rituais: eles não precisam de nada extraordinário para funcionar. Precisam apenas de constância. Um horário, um lugar, uma janela de tempo reservada. E, principalmente, a certeza de que aquele espaço existe.

O Papo na Fogueira funcionava exatamente assim. Não era o assunto que fazia o encontro valer a pena. Era o fato de que aquele espaço estava marcado. Saber que naquele dia, naquele horário, haveria uma janela aberta — com duas pessoas do outro lado esperando — mudava a natureza da semana.

Havia semanas em que a conversa rendia. Havia semanas em que o papo era morno, sem assunto grande, apenas o barulho de três pessoas que se gostam tentando encontrar algo para dizer. E havia semanas em que a melhor parte era justamente não ter assunto nenhum.

Nenhuma dessas versões era melhor que a outra. Todas cumpriam a mesma função: manter o espaço aberto.

A fogueira, afinal, não precisa estar sempre alta. Ela precisa estar sempre acesa. A diferença é sutil, mas é o que separa um encontro de um compromisso.

O valor de um ritual não está no que ele produz em cada edição. Está na certeza de que ele vai existir na próxima.

3. O que essa pausa não é

Quero deixar uma coisa clara antes de seguir: este post não é um encerramento.

Não estou anunciando o fim do Papo na Fogueira, não estou me despedindo da série, não estou escrevendo o texto que fecha uma porta. Estou escrevendo o texto que reconhece um intervalo.

Existe uma diferença grande entre as duas coisas, e ela importa. Um encerramento tem um peso próprio, uma formalidade que não corresponde ao que aconteceu aqui. O que aconteceu foi mais simples e mais comum do que isso: a vida, com sua capacidade infinita de ocupar espaço, foi empurrando o horário.

A rotina mudou. As demandas mudaram. Aquilo que antes cabia numa terça à noite deixou de caber. Não houve decisão, não houve conversa formal, não houve nada parecido com um rompimento. Houve apenas a constatação silenciosa de que o espaço que antes estava livre passou a estar ocupado por outra coisa.

É o tipo de coisa que não precisa de explicação. Todo mundo que já tentou manter um encontro fixo na vida adulta conhece esse mecanismo.

Nem toda pausa é o fim de alguma coisa. Algumas são apenas o intervalo entre uma rotina que existiu e outra que ainda vai existir.

4. O que fica quando o encontro não acontece

Existe uma pergunta que sempre me ocorre quando um ritual entra em pausa: o que sobra dele?

A resposta mais óbvia seria "os textos". E, de certa forma, é verdade. Estão aqui, registrados, cada um deles um retrato de uma conversa específica em um dia específico. Quem quiser revisitar o que foi dito naquela época tem onde encontrar.

Mas não é só isso. O que fica é também o formato. A ideia de que existe um espaço em que três pessoas conversam sem pauta, sem obrigação de produzir, sem a pressão de transformar cada encontro em algo memorável. Essa estrutura continua existindo, mesmo quando ninguém está ocupando o espaço.

É como uma casa vazia. Os móveis não vão embora porque ninguém está sentado neles. A casa continua de pé, esperando o próximo encontro. E o fato de estar vazia não a torna menos casa.

O Papo na Fogueira permanece como estrutura: um nome, um formato, um compromisso que nunca precisou ser assinado para valer. Se em algum momento a rotina devolver os horários que tomou, o espaço está lá.

Um ritual em pausa não é um ritual morto. É um ritual esperando o próximo encontro.

5. O que a pausa ensina sobre o ritual

Existe uma coisa que só se aprende quando um ritual para: sua real importância.

Enquanto a chamada acontecia toda semana, eu não tinha dimensão exata do que ela representava. Era parte da rotina, e a rotina tem o defeito de tornar invisível aquilo que ela contém. A gente só percebe o peso de uma coisa quando ela deixa de estar na agenda.

Agora, olhando de fora, consigo perceber com mais clareza o que aquele espaço fazia. Não era apenas conversa. Era um ponto fixo em uma semana que costuma ser feita de pontos móveis — prazos que mudam, demandas que aparecem, horários que se reorganizam sem aviso. A fogueira era o único compromisso que não negociava com a rotina.

Talvez seja essa a definição mais honesta de amizade adulta: alguém que mantém um espaço aberto mesmo quando o espaço não está sendo usado.

E isso não se perde. É o tipo de coisa que fica guardada no formato, não no calendário.

Às vezes, só a ausência de um encontro revela o quanto aquele encontro sustinha a semana.

6. A porta que continua aberta

Não vou dizer que a fogueira está apagada, porque não está. Não vou dizer que a série acabou, porque não acabou. O que existe é uma pausa: um intervalo em que o ritual permanece definido, mas sem data marcada para a próxima edição.

E, honestamente, essa é a forma mais saudável de lidar com um ritual que depende de três rotinas diferentes para acontecer. Decretar o fim teria um gosto de formalidade que não corresponde à realidade. Insistir em manter o horário teria um gosto de obrigação que também não corresponde.

O caminho do meio é o que sempre foi: o espaço continua existindo. Quando houver disposição, quando houver horário, quando houver vontade, a chamada abre de novo. E se abrir, ela abre sem cerimônia — porque um ritual que nunca teve pauta também nunca teve protocolo de retorno.

Talvez demore. Talvez demore mais do que eu gostaria. Mas esse é o tipo de coisa que não se mede em calendário, e sim em disposição.

Algumas portas não se fecham. Elas apenas ficam encostadas, esperando alguém empurrar de novo.

Conclusão — o fogo não precisa de plateia

Escrever este texto foi uma forma de registrar a pausa sem transformá-la em ponto final.

O Papo na Fogueira existiu por um tempo. Foi um espaço de conversa sem pauta, transformado em texto sem pretensão de virar série, mantido por três pessoas que gostavam da ideia de ter um encontro fixo na semana. Em algum momento, a rotina de cada um ocupou o lugar que antes era da chamada, e o encontro deixou de acontecer com a frequência que acontecia.

Nada disso apaga o que foi escrito. Nada disso encerra o que foi construído. E nada disso precisa ser tratado como um fim.

O que fica é o formato. A ideia de que três pessoas podem simplesmente abrir uma chamada e conversar, sem precisar que aquilo renda alguma coisa, sem precisar que a conversa vire texto, sem precisar que o texto vire post. E, quando render, vira post também.

Uma fogueira não precisa de plateia para continuar existindo. Ela precisa apenas de lenha guardada por perto, para quando alguém quiser sentar em volta de novo.

A lenha está guardada.

Não estou encerrando uma série. Estou apenas deixando a fogueira montada, esperando o próximo encontro.