← Todos os Posts

Como homenagear os velhos jogos de Pokémon sem tomar nada emprestado

Gold, Silver e Crystal passam cada passo do jogador por uma única rotina que aproxima os ovos do grupo da eclosão a cada 256 passos, aumenta a felicidade do grupo a cada 512 e fere um Pokémon envenenado a cada 4; Emerald faz suas berries crescerem pelo relógio em tempo real em quatro estágios, de 4 a 96 horas do plantio ao fruto, e deixa um ditado de duas palavras derivar 5 pontos por dia e se espalhar de save em save.1234 Isso são mecânicas, e mecânicas são o que uma homenagem pode manter. O histórico diz o que ela não pode: todo jogo de fã, ferramenta e fórum deste histórico que foi derrubado, ou retirado após notificações de remoção, entre 2016 e 2024 era construído sobre os próprios nomes, arte ou código de Pokémon, ou linkava para jogos que eram,5678 e o único caso disputado por mecânicas, o processo contra o Palworld aberto em Tóquio em 18 de setembro de 2024, se apoia em patentes cujas reivindicações exigem mirar e arremessar um item de captura, um indicador de chance de captura ou montar em pleno ar num personagem montável.910111213 Então li as quatro descompilações para entender os sistemas, li as reivindicações e os relatos dos tribunais para entender o limite, e escrevi um briefing para o nosso app, o Kiradex, que mantém a caminhada, o relógio, o cartão, o desnível, o salão semanal e o ditado que se espalha, e desenha por conta própria cada pixel, cada palavra e cada número.

TL;DR

  • Andar era a moeda. Os dois motores mandam cada passo pelo mundo do jogo por uma única função que ovos, amizade, veneno, Repels, a Zona Safari (Safari Zone) e as revanches escutam; os ritmos são grossos (4, 128, 256 e 512 passos), então uma recompensa chega como um acontecimento, e os orçamentos são gastos em passos, não em segundos: 500 para uma saída na Zona Safari, 100, 200 e 250 para os três Repels.1214151617
  • O relógio deu forma à semana. Crystal divide o dia às 4, às 10 e às 18 horas, realiza seu Concurso de Captura de Insetos (Bug-Catching Contest) na terça, na quinta e no sábado por 20 minutos, sorteia um Número da Sorte (Lucky Number) toda sexta contra cada Pokémon que você tem e zera 16 flags diárias à meia-noite; Emerald roda onze atualizações quando a data muda e faz as berries crescerem a partir dos minutos passados quando você volta.18192021223
  • Status era mostrado para alguém. O Cartão de Treinador (Trainer Card) de Emerald muda de cor a cada uma de suas quatro estrelas, cada uma por um tipo diferente de jogo; uma caixa guarda 30 numa grade de 6 por 5; um desafio do Battle Frontier na Tower, no Palace, na Arena ou na Factory são 7 batalhas (um torneio do Dome são 4, uma passagem pelo Pike são 14 salas, uma subida na Pyramid são 7 andares), e o Frontier Brain da Battle Tower é a 35ª e a 70ª batalha de uma sequência.232425
  • Os mundos dos outros chegavam ao seu. A mistura de registros (record mixing) copia 5.188 bytes entre saves: 20 Bases Secretas (Secret Bases), 25 espaços de programas de TV (20 deles reservados para programas que só chegam por esse caminho), 5 frases da moda (trendy phrases) e um recorde da Battle Tower; um em cada cinco jogadores começa com o Hipster, que ensina uma palavra escondida a cada vez que chega.262728
  • Direito autoral, marca e patente são três limites diferentes. Os desenvolvedores de Uranium disseram em 2016 que ninguém tinha falado com eles e tiraram o jogo do ar depois de notificações de remoção; Prism recebeu uma notificação de cessação e desistência em 21 de dezembro de 2016; o Relic Castle saiu do ar em março de 2024 depois de uma notificação DMCA relatada; o Palworld é o único caso de patente, restringido em novembro de 2025 a versões antigas do jogo, com uma medida inibitória ainda pedida e nenhuma decisão relatada até 4 de outubro de 2026.5682930
  • Os jogos tributo mantiveram o gênero e largaram o nome. Nenhuma das descrições de loja do Steam que conferi, de seis jogos tributo e do Palworld, diz “Pokémon”; os desenvolvedores falam o nome livremente em entrevistas, como influência.3132
  • O que isso dá ao Kiradex. Um briefing, não uma build: uma planta no parapeito que cresce a cada 256 passos na praça, uma caixa matinal no relógio do próprio app, quatro estrelas no cartão do colecionador, um desnível de mão única numa rota (os posts sobre elevação e rotas decidem), rosetas do salão a cada sete participações no salão semanal e um ditado de duas palavras que se espalha entre praças; cada um com aquilo com que não pode se parecer e uma verificação que um teste consegue rodar, e uma lista de coisas que o app nunca deve fazer. Quatro patentes lidas, nenhuma busca de patentes sobre contadores de passos ou relógios e nenhum advogado: esta é a leitura de um desenvolvedor, não aconselhamento jurídico.33

1. Do que “a sensação” era feita, e como eu a medi

Este post não é sobre as criaturas de Red, Gold ou Ruby. É sobre os momentos em volta delas: o ovo que chocou no caminho de volta para casa, o programa de rádio de uma sexta-feira, o cartão que ficou dourado, a Base Secreta de um amigo que apareceu no seu próprio jogo depois de uma tarde de cabo link. Esses momentos são sistemas, e é de sistemas que este post trata. Os posts anteriores desta série mediram os tiles, as pessoas e os prédios; este mede os loops que faziam um mundo de bolso parecer vivo enquanto o cartucho estava desligado, depois lê o histórico jurídico em torno dos jogos que o amaram e, por fim, registra o que a nossa própria cidade pode pegar emprestado e o que ela não pode.343536

O Kiradex é um scanner de cartas com uma cidade em pixel ao lado, o Kiradex World: uma praça de tiles de 16 pixels onde colecionadores caminham, dizem falas prontas e mostram suas cartas.34 As cartas que ele escaneia são cartas reais de Pokémon, e é justamente por isso que este post precisa ter cuidado. As regras do próprio app, escritas antes de qualquer parte desta pesquisa, já dizem “nothing of theirs in the world” (nada deles no mundo): nada de criaturas, nada de treinadores, nada de dispositivos de captura, nada de designs de ginásios ou insígnias, nada de música, nada de nomes com “Poké-”.37 A pergunta que este post responde é a seguinte: o que uma cidade como a nossa pode tirar de jogos dentro dos quais tantos colecionadores cresceram, e como sabemos disso?

O método

A primeira metade foi lida no código-fonte, não em wikis; um parágrafo, sobre o Pokéathlon, é a exceção e diz isso. O projeto pret mantém descompilações dos jogos de Game Boy e Game Boy Advance: C e assembly que reconstroem cada jogo, com um README que lista o SHA-1 de cada ROM que ele reproduz, com as constantes do jogo nomeadas e, em alguns trechos, comentadas pelas pessoas que fizeram a engenharia reversa. Usei clones rasos de quatro delas, cada um num commit do branch master: pokered em d2704a6 (commit de 22 de setembro de 2026), pokecrystal em 5beda23 (29 de setembro), pokeemerald em 731ad5b (1º de outubro) e pokefirered em 037335f (26 de setembro).38 Um script, measure_systems.py, imprime cada constante citada nas seções 2 a 6 com seu arquivo e sua linha e deriva as contagens (horas por estágio de 43 berries, espaços de telefone e de revanche, tipos de programa de TV, flags diárias); um segundo, measure_map_features.py, percorre cada mapa de Emerald, resolve as células de cada layout contra as tabelas de atributos dos seus tilesets e conta as células de ressalto, as de só bicicleta e as de grama alta, além das árvores cortáveis, por tipo de mapa.3839 Os números desses dois scripts são medidos; as descrições do que dispara e quando são a minha leitura dos caminhos de código para os quais eles apontam. Onde a descompilação tem um comentário, li também o código que ele descreve, porque os dois podem discordar: na rotina de passos de Crystal, o comentário de quem chama diz que a felicidade sobe a cada 256 passos, e a rotina chamada age uma chamada sim e outra não, então a seção 2 segue o código.2 Ruby e Sapphire não estão entre os clones; onde este post diz algo sobre eles, isso foi lido do código de Emerald e FireRed que interpreta um save de Ruby ou Sapphire.23

A segunda metade foi baixada em 4 de outubro de 2026 e salva: os comunicados e as páginas de regras da Nintendo e da The Pokémon Company, os avisos da Pocketpair, as três patentes japonesas e uma patente americana do Google Patents (as reivindicações japonesas com a tradução automática do Google para o inglês, as americanas no inglês da própria patente), as fichas da loja do Steam de seis jogos tributo e do Palworld, e reportagens de veículos nomeados, com suas datas. Cada afirmação das seções 7 a 11 é citada ao documento ou ao veículo. Onde uma página não pôde ser acessada, digo isso. Onde tiro uma conclusão, marco como minha.

Nada neste post é aconselhamento jurídico. Sou um desenvolvedor que leu os documentos; não consultei um advogado sobre nada disso, e li quatro patentes, não o portfólio inteiro das empresas.

A pesquisa por trás do post é um dossiê no repositório do Kiradex com uma URL em cada fato e uma tag [measured] em cada número que um script produziu; o post é esse dossiê tornado legível, e a seção 14 é o seu briefing.33

2. O contador de passos: andar era a moeda

Os portáteis tinham um verbo que o jogador nunca parava de conjugar. Os dois motores o encaminham por uma única função que todo o resto escuta, e ler essas duas funções é o jeito mais rápido de ver quanto da vida dos jogos antigos era paga em passos.

Gold, Silver e Crystal: CountStep

Em Crystal, cada passo pelo mundo do jogo passa por CountStep em engine/overworld/events.asm. A rotina pula as salas de link, deixa que uma ligação especial pendente ou o fim do efeito de um Repel fiquem com o passo primeiro, depois incrementa um contador de veneno e um contador de passos de um byte, e age conforme o valor do contador. Os comentários da descompilação dizem o que cada ramo faz: “Every 256 steps, increase the happiness of all your Pokemon” (a cada 256 passos, aumente a felicidade de todos os seus Pokémon); “Every 256 steps, offset from the happiness incrementor by 128 steps” (a cada 256 passos, defasado 128 passos do incremento de felicidade), decremente os contadores de eclosão dos ovos (o código compara o contador com $80, 128); “Every 4 steps, deal damage to all poisoned Pokemon” (a cada 4 passos, cause dano a todos os Pokémon envenenados).1 O primeiro desses comentários descreve a chamada, não o resultado. StepHappiness, a rotina chamada em engine/events/happiness_egg.asm, abre com seu próprio comentário, “Raise the party’s happiness by 1 point every other step cycle” (aumente a felicidade do grupo em 1 ponto a cada dois ciclos de passos): ela alterna um segundo contador de um byte entre 0 e 1 (and 1) e retorna sem fazer nada uma chamada sim e outra não, então a felicidade do grupo sobe 1 a cada 512 passos, sem contar os ovos.2 O comentário sobre os ovos termina com um limite: a contagem para no primeiro “one that is ready to hatch” (que estiver pronto para chocar). DoEggStep, em engine/pokemon/breeding.asm, percorre o grupo em ordem, tira 1 do contador de cada ovo e retorna assim que um contador chega a 0; CountStep então entrega o passo ao script de eclosão, e qualquer ovo mais adiante no grupo espera a próxima batida.40 A cada passo, CountStep também soma 1 ponto de experiência a cada um dos dois Pokémon deixados no Day-Care, e por último conta os passos de bicicleta.1

A bicicleta é a melhor piada da rotina. Em Gold, Silver e Crystal, a loja de bicicletas empresta uma para você, e o número do dono vai para o seu telefone; depois que você pedala pelo menos 1.024 passos dentro da área de cobertura, ele liga, e o contador da bicicleta trava em 65.535 em vez de dar a volta.1 A bicicleta é um anúncio em que você pedala, e o jogo conta se você foi visto em cima dela.

Emerald: TryStartStepCountScript

Emerald pendura mais coisas no passo. Em src/field_control_avatar.c, TryStartStepCountScript avança, nesta ordem: o contador de revanches, um contador de amizade, o contador de Faraway Island, o veneno, a eclosão de ovos, o fim do clima anormal, um enigma em braille que abre a entrada de uma caverna, cinco ligações com roteiro, a Zona Safari, o corredor do S.S. Tidal e o Match Call. O veneno morde a cada 4 passos (%= 4), mas nunca dentro de uma Base Secreta.14 A amizade não é garantida. A cada 128 passos (o contador é mantido com %= 128), o jogo chama AdjustFriendship uma vez para cada espaço do grupo, e essa função, sob o comentário “50% chance every 128 steps” (50% de chance a cada 128 passos), retorna mais cedo quando Random() & 1 está ativo; então cada Pokémon do grupo, exceto os ovos, ganha o seu próprio cara ou coroa e só ganha amizade nas batidas que vence: em média, uma vez a cada 256 passos.1415

Os ovos têm o seu próprio relógio. O contador de passos do Day-Care é um byte que dispara quando chega a 255 e dá a volta, então a cada 256 passos cada ovo do grupo, até o limite descrito abaixo, perde um ciclo de eclosão, ou dois quando um membro do grupo tem Flame Body ou Magma Armor. Emerald tem o mesmo limite à sua maneira: o loop pula um ovo marcado como dados corrompidos (MON_DATA_SANITY_IS_BAD_EGG), e quando encontra um ovo cujo contador já está em 0, para e choca esse ovo, então os ovos mais adiante no grupo esperam a próxima batida. O Day-Care também sorteia um ovo novo na mesma batida de 256 passos, quando o byte baixo da contagem de passos do segundo genitor chega a 0xFF.41

Orçamentos, não temporizadores

O outro tipo de passo é um orçamento, gasto uma vez. A Zona Safari é o exemplo mais claro. Em Red e Blue, o portão cobra ¥500, entrega 30 Safari Balls e grava 502 no contador de passos, e então faz você andar três passos para dentro do parque automaticamente; Emerald põe o seu contador em 500 redondos.16 Por que Red começa em 502 e não em 500 o código não diz, e não rodei o jogo para contar quantos desses três passos o contador desconta. Os Repels também são orçamentos, sem mudança de Red a Emerald: 100 passos para um Repel, 200 para um Super Repel, 250 para um Max Repel.17 As revanches viraram orçamento na Geração 3: depois de cinco insígnias, o contador de revanches de Emerald enche até 255 passos, e no próximo carregamento de mapa um treinador aleatório daquela rota pode querer batalhar de novo; o VS Seeker de FireRed e LeafGreen, o aparelho que pede revanches aos treinadores, só pode ser usado de novo depois de 100 passos.42

Um gráfico de barras horizontais em escala logarítmica de passos, lido das descompilações. As barras preenchidas são batidas que se repetem: os parceiros do Day-Care ganham 1 ponto de experiência a cada passo; os membros envenenados do grupo levam dano a cada 4 passos; na Gen 3, a cada 128 passos cada membro do grupo tem 50 por cento de chance de ganhar amizade; os ovos do grupo perdem um ciclo de eclosão a cada 256 passos, na ordem do grupo até o primeiro ovo pronto para chocar; na Gen 2, a felicidade do grupo sobe a cada 512 passos. As barras contornadas são orçamentos gastos uma vez: o contador de revanches em 255, o VS Seeker em 100, Repel 100, Super Repel 200, Max Repel 250, a Zona Safari em 500 (502 em Red e Blue) e a ligação da loja de bicicletas em 1.024.

O que um passo paga, em passos por acontecimento; desenhado por figures.py a partir de measure_systems.out.txt.43

Por que funcionava

Três consequências de design saem do código, e elas são a parte que vale a pena manter.

Tudo anda num ritmo grosso. Os ovos avançam a cada 256 passos nas duas gerações; a Gen 2 aumenta a felicidade a cada 512, e a Gen 3 dá a cada Pokémon do grupo um cara ou coroa de amizade a cada 128. O jogador nunca vê um número subir; vê um acontecimento ocasional, uma mensagem de que um ovo está se mexendo, um Pokémon que de repente está mais amigável. Um contador de um byte é o relógio mais barato que um Game Boy tem e, na minha leitura, também é o motivo de a recompensa parecer clima, e não barra de progresso: você não consegue ficar olhando para ela, então você a nota. O cara ou coroa de Emerald torna o clima literal: a mesma caminhada pode aumentar a amizade ou não.121415

Os orçamentos são gastos andando, não esperando. Os 500 passos da Zona Safari e os 100, 200 ou 250 de um Repel só são gastos quando você anda. Um jogador que para para ler, pensar ou largar o console para jantar não perde nada.1617 Para um app de celular, cuja tela é largada a cada poucos minutos, esse é um contrato melhor do que uma contagem regressiva.

Andar é um sinal social. A ligação da loja de bicicletas é o jogo percebendo que você saiu com a bicicleta dele, e o contador de revanches de Emerald deixa uma rota “lembrar” que você foi embora e voltou.142 Na minha leitura, o truque mais profundo do contador de passos é fazer o mundo responder à presença do jogador sem pedir nada além de estar ali.

Nada disso precisa de uma criatura: um contador, uma batida, um orçamento. O direito autoral não alcança um método de operação, que é onde mora um contador;44 se alguém tem patente sobre uma mecânica movida a passos é uma pergunta que não pesquisei, e a seção 14 diz isso. A seção 14 gasta o contador numa planta.

3. O relógio e o calendário: a semana tinha forma

Gold e Silver colocaram um relógio em tempo real no cartucho, e os designers o gastaram em compromissos. Emerald manteve o relógio e passou os compromissos para um calendário que avança sozinho. Juntos, eles são o melhor argumento que conheço a favor de um mundo que muda enquanto você está longe.

Três partes do dia

Gold, Silver e Crystal dividem o dia em três: manhã das 04:00 às 09:59, dia das 10:00 às 17:59 e noite das 18:00 às 03:59. As constantes são MORN_HOUR 4, DAY_HOUR 10 e NITE_HOUR 18, e a tabela TimesOfDay traz o comentário “0400-0959 morn | 1000-1759 day | 1800-0359 nite”. Uma tabela sem uso, BetaTimesOfDay, com os valores 20, 40 e 60, sobrevive ao lado dela na descompilação.18

O Kiradex já marca a hora, e de propósito não nesses horários. O seu Daylight.Phase é manhã das 6 às 9, dia das 9 às 17, fim de tarde das 17 às 20 e noite no resto, com quatro níveis de luz próprios; o briefing da seção 14 mantém isso assim.45

Compromissos em dias com nome

O Concurso de Captura de Insetos no National Park acontece na terça, na quinta e no sábado: o script do portão confere o dia da semana para esses três e nenhum outro. Ele dura 20 minutos de tempo real e dá 20 Park Balls (BUG_CONTEST_MINUTES 20, BUG_CONTEST_BALLS 20), e uma flag diária impede uma segunda inscrição no mesmo dia.19 Crystal zera 16 flags diárias à meia-noite, dois bytes de oito: a fabricação de Poké Balls do Kurt, o concurso, um enxame, as árvores frutíferas, um corte de cabelo, o TM da loja de departamentos, o tutor de golpes e outras.20

O programa do Número da Sorte é semanal. Uma contagem regressiva até a próxima sexta escolhe um novo número de cinco dígitos; o jogo o compara com o ID de treinador de cada Pokémon que você tem, no grupo e em todas as 14 caixas, casando a partir do dígito mais à direita; os cinco dígitos pagam o primeiro prêmio, três ou quatro o segundo, dois o terceiro.21 Vinte e quatro treinadores do seu telefone têm, cada um, um dia da semana e um período do dia em que você pode ligar para pedir revanche, distribuídos de três ou quatro por dia, e a seção 6 volta a eles.46

Duas faixas de 24 horas e uma semana. Gold, Silver e Crystal: manhã das 04:00 às 09:59, dia das 10:00 às 17:59, noite das 18:00 às 03:59. O Daylight do Kiradex: manhã das 06:00 às 08:59, dia das 09:00 às 16:59, fim de tarde das 17:00 às 19:59, noite das 20:00 às 05:59. Abaixo, a semana de Crystal: o Concurso de Captura de Insetos na terça, na quinta e no sábado; o sorteio do Número da Sorte na sexta; as janelas de ligação para revanche por dia da semana, 3, 3, 4, 4, 4, 3 e 3 a partir de segunda, 24 no total; e 16 flags diárias zeradas a cada meia-noite.

O dia e a semana em Crystal, e o dia do próprio app; desenhado por figures.py a partir de measure_systems.out.txt e Daylight.swift.43

O calendário de Emerald

Emerald roda onze atualizações “por dia” sempre que a data muda, em UpdatePerDay: limpar as flags diárias; mover a frase da moda; envelhecer os programas de TV e os surtos; o clima; o Pokérus; o número de Mirage Island; o estado do Professor Birch; dois personagens do Battle Frontier, uma chamada cada; os itens de Shoal Cave; e o número da loteria. O mesmo arquivo pula tudo isso enquanto o jogador está dentro de um Centro Pokémon.22 Emerald nomeia 12 flags diárias, e 9 delas são uma berry de graça de alguém: o saguão dos Concursos, três personagens de rota, o Berry Master e a esposa dele, Lilycove, a floricultura e Sootopolis. As outras três são a Base Secreta, o bilhete de loteria e a partida do Apprentice.47

Um jardim que cresce em horas reais

Uma árvore de berries da Gen 3 tem os estágios plantada, broto, mais alta, florida e com berries, além de um estágio “brilhante” para árvores de evento, e o save guarda 128 espaços de árvore.48 O crescimento corre pelos minutos do relógio em tempo real, não por passos: UpdatePerMinute entrega os minutos passados a BerryTreeTimeUpdate, cada estágio dura stageDuration × 60 minutos, e o estágio com berries dura quatro vezes mais; depois a árvore se replanta sozinha no estágio de broto e as berries não colhidas somem (berryYield = 0), até 10 rebrotas antes de ser apagada.3 Uma árvore também é apagada quando os minutos entregues a ela de uma vez chegam a 71 durações de estágio, que é a minha leitura de minutes >= GetStageDurationByBerryType(tree->berry) * 71: uns três dias de ausência para uma berry cujo estágio dura uma hora.3

Entre as 43 definições de berry, stageDuration é 1 hora para 5 berries, 3 para 12, 4 para 1, 6 para 11, 12 para 1, 18 para 5 e 24 para 8, então do plantio às primeiras berries passam 4, 12, 16, 24, 48, 72 ou 96 horas.3 A rega é registrada uma vez por estágio, quatro flags, e a colheita é sorteada dentro de uma faixa que sobe com o número de estágios regados: nenhum dá o mínimo da berry, e cada estágio regado desloca a faixa um quarto do caminho entre o mínimo e o máximo, com o sorteio arredondado (CalcBerryYieldInternal).3 Enumerando essa função sobre as faixas de colheita das 43 berries: para as 33 cujo máximo fica no máximo dois acima do mínimo, quatro estágios regados dão sempre o máximo; para as outras 10, que rendem de 2 a 6 ou de 3 a 6, quatro estágios regados dão o máximo ou um a menos, e uma berry que rende de 2 a 6 dá 2 ou 3 com um estágio regado, 3 ou 4 com dois, 4 ou 5 com três e 5 ou 6 com quatro.49

Um gráfico de barras das 43 berries de Emerald pelas horas do plantio às primeiras berries: 4 horas, 5 berries; 12 horas, 12; 16 horas, 1; 24 horas, 11; 48 horas, 1; 72 horas, 5; 96 horas, 8.

Quanto tempo as berries de Emerald levam; desenhado por figures.py a partir das contagens de stageDuration em measure_systems.out.txt.43

A ideia sobreviveu ao Game Boy Advance. O Pokéathlon de HeartGold e SoulSilver, que não medi e só conheço pelo guia do Serebii, dá “plus 100 points if you came in first” (mais 100 pontos se você chegou em primeiro) depois de cada rodada de três provas, e os itens que a loja dele vende “change each day” (mudam a cada dia).50

Por que funcionava

A semana tinha forma. Gold e Silver gastaram o relógio em compromissos: um concurso três dias por semana, 24 treinadores alcançáveis cada um num período de um dia da semana, um sorteio às sextas, 16 coisas que voltam à meia-noite.19462120 Emerald transformou compromissos em deriva: a frase da moda anda 5 por dia, um surto dura 2 dias, as notícias contam 4 para trás, as berries levam de 4 a 96 horas.451273 Na minha leitura, o resultado é um mundo que mudava enquanto o cartucho estava desligado, e esse é todo o motivo para ligá-lo de novo.

Dois detalhes importam para um celular. Emerald se recusa a rodar as atualizações do dia dentro de um Centro Pokémon, então existe uma sala segura onde nada muda debaixo de você.22 E o crescimento das berries é calculado a partir dos minutos passados quando você volta, não por um temporizador que precise continuar rodando, então a árvore continua crescendo enquanto você está longe. Ela não espera por você, porém: uma colheita madura fica na árvore por quatro durações de estágio e depois cai, quatro horas para uma berry cujo estágio dura uma hora, e uma ausência de 71 durações de estágio apaga a árvore.3 É assim que quero que o nosso app funcione também: calcular o estado do mundo a partir do relógio na chegada, e nunca depender de um temporizador que precise continuar rodando enquanto o celular está no bolso. A seção 13 tem o lado da API.

4. Coisas que você mostra: o cartão, as caixas, as sequências, o sorteio

Os jogos antigos davam ao status uma forma física, e cada uma dessas formas era algo que outro jogador podia ver.

O Cartão de Treinador e suas estrelas

O Cartão de Treinador de Emerald muda de cor conforme o número de estrelas: verde sem nenhuma, depois bronze, cobre, prata, e ouro com quatro. O cartão de Kanto de FireRed e LeafGreen vai de azul a verde, bronze, prata e ouro.23 As quatro estrelas de Emerald, em CountPlayerTrainerStars, são quatro conquistas sem relação entre si: entrar no Hall da Fama; completar a Pokédex de Hoenn; ter as cinco pinturas de concurso de nível Master no museu de Lilycove; e ter todos os símbolos do Battle Frontier.23 Quando Emerald lê um cartão de Ruby ou Sapphire, conta as estrelas com GetRubyTrainerStars: o Hall da Fama, a Pokédex de Hoenn e as pinturas continuam contando, e mais de 49 vitórias seguidas na Battle Tower (battleTowerStraightWins > 49) tomam o lugar dos símbolos do Frontier.23 O cartão de FireRed e LeafGreen, do jeito que é montado para um parceiro de link, conta o Hall da Fama, a Pokédex de Kanto, a Pokédex Nacional e uma estrela por dois minijogos sem fio juntos: 200 berries colhidas e 200 pulos seguidos.52

O cartão também é um objeto social. Ele traz um perfil de Easy Chat, o sistema de frases prontas dos jogos, as vitórias e derrotas em batalhas por link com teto de 9.999, as trocas, as contagens de concursos e de Pokéblocks com amigos e o tempo da sua estreia no Hall da Fama, com teto de 999 horas, 59 minutos e 59 segundos.23

Por que funcionava. Quatro feitos longos de quatro tipos diferentes, cada um recolorindo aquilo que os outros veem quando você conecta, de modo que a cor se lê do outro lado da sala. FireRed dedica uma das suas quatro estrelas ao jogo com amigos. Nada no cartão é comprado; na minha leitura, é isso que faz um cartão dourado valer a pena ser mostrado.

As caixas do PC

O armazenamento cresceu a cada geração. Red e Blue guardam 12 caixas de 20, 240 no total; Gold, Silver e Crystal, 14 de 20, 280 (a versão japonesa define 30 por caixa); Ruby, Sapphire e Emerald, 14 caixas de 30, 420, cada caixa uma grade de 6 por 5 com nome e papel de parede.24 Uma caixa de 30 é a mesma ideia de uma página de fichário: uma grade fixa que recompensa a arrumação, e o papel de parede a transforma tanto num cômodo quanto numa lista.

Fitas e fichas

Emerald define 32 IDs de fita: uma fita Champion; 20 fitas de concurso, cinco categorias com quatro níveis cada; Winning, Victory, Artist e Effort; e sete fitas de presente. Uma fita que leva um Pokémon a mais de quatro (o código testa GetRibbonCount(...) > NUM_CUTIES_RIBBONS, e essa constante vale 4) pode criar um programa de TV sobre o dono dele, se houver um espaço livre e nenhum programa desses já estiver esperando; o programa é criado desligado (active = FALSE, comentado no código como inativo até passar pela mistura de registros), então só chega a uma televisão depois que a mistura de registros o leva a outro jogo.532754 As fichas do Game Corner têm teto de 9.999 (MAX_COINS).55 As fichas são o único sistema deste post que a seção 14 recusa de saída, por motivos que não têm nada a ver com a Nintendo: o Kiradex é usado por crianças,36 e a pesquisa sobre colecionismo por trás do seu mundo já descarta itens aleatórios pagos e qualquer coisa com cara de caça-níquel.33

A Battle Tower e as sequências do Frontier

Um desafio na Battle Tower, no Battle Palace, na Battle Arena ou na Battle Factory são 7 batalhas; um torneio do Battle Dome são 4 (DOME_ROUNDS_COUNT 4), uma passagem pelo Battle Pike são 14 salas (NUM_PIKE_ROOMS 14), nem todas de batalha, e uma subida na Battle Pyramid são 7 andares. FRONTIER_STAGES_PER_CHALLENGE 7 é uma constante compartilhada, não uma regra que toda instalação segue. As sequências contam até 9.999.25 O Frontier Brain de cada instalação (o seu chefe) aparece em pontos fixos de uma sequência, pagando primeiro um símbolo de prata e depois um de ouro. A tabela em frontier_util.c não se lê ao pé da letra: a verificação soma um modificador próprio de cada instalação à sequência atual e compara a soma com a tabela (winStreak + modifier == value). O modificador é 1 para a Tower, o Palace, a Arena, a Factory e o Pike, então o Brain é a 35ª batalha, não a batalha depois de 35 vitórias; é 0 para o Dome, cuja sequência conta torneios vencidos, e para a Pyramid, cuja sequência conta andares concluídos.25

Instalação A sequência conta Brain de prata Brain de ouro
Battle Tower batalhas vencidas 35ª batalha 70ª batalha
Battle Dome torneios vencidos 5º torneio 10º torneio
Battle Palace batalhas vencidas 21ª batalha 42ª batalha
Battle Arena batalhas vencidas 28ª batalha 56ª batalha
Battle Factory batalhas vencidas 21ª batalha 42ª batalha
Battle Pike salas concluídas 28ª sala 140ª sala
Battle Pyramid andares concluídos depois de 21 andares depois de 70 andares

Fonte: frontier_util.c (a tabela e a verificação) e os scripts das instalações para o que cada sequência conta, lidos por measure_systems.py e à mão.25

Os marcos da Tower têm a forma mais limpa: séries de sete, e o chefe como a última batalha da quinta série e de novo da décima. A sequência é o conteúdo; o chefe é a pontuação.

O sorteio que recompensa o tamanho da coleção

A Lottery Corner de Emerald sorteia um número novo todo dia e o compara com o ID de treinador de cada Pokémon que você tem, grupo e caixas, casando a partir do dígito mais à direita; o código diz “do not calculate ticket values for eggs” (não calcular valores de bilhete para ovos). Dois, três, quatro ou cinco dígitos coincidentes pagam um PP Up, um Exp. Share, um Max Revive ou uma Master Ball, e uma flag diária permite um bilhete por dia (FLAG_DAILY_PICKED_LOTO_TICKET).56 O Número da Sorte semanal de Crystal paga três faixas do mesmo jeito: dois dígitos coincidentes, três ou quatro, e os cinco.21

Por que funcionava. O sorteio transforma as caixas em bilhetes. Todo Pokémon que você tem conta, inclusive os trocados que carregam o ID de outros treinadores, então uma coleção grande, variada e cheia de trocas tem, literalmente, mais sorte. Também é um sorteio, e um sorteio torna a recompensa aleatória, o que a regra desta série para cosméticos, “never random, never on a countdown” (nunca aleatório, nunca com contagem regressiva), recusa; a seção 14 deixa isso de fora.36

5. Um chão que lembra: ressaltos, árvores cortadas e duas bicicletas

As rotas entre as cidades tinham o seu próprio vocabulário de bordas de mão única e de travas que dava para ver antes de dar para abrir. Contei tudo isso em Emerald com measure_map_features.py, que lê o layout de cada mapa célula por célula e procura o comportamento de cada célula nas tabelas de atributos dos seus tilesets. As contagens são de células, não de elementos: um ressalto longo são muitas células, e um layout compartilhado por vários mapas é contado uma vez.39

Ressaltos são um recurso de rota

Nos 41 layouts de rota de Emerald, 87.787 células no total, há 726 células de ressalto de mão única (os comportamentos MB_JUMP_*) e 2.777 células de grama alta; 21 das 41 rotas têm ressaltos. As quatro primeiras rotas têm 13, 17, 24 e 13 células de ressalto. Ressaltos também aparecem nos 9 layouts de cidade grande (34 células), no subsolo (215) e em interiores (48), e em nenhum dos 7 layouts de cidadezinha.39

Um gráfico de barras de células de ressalto de mão única por tipo de mapa nos layouts únicos de Emerald: rotas, 726 de 87.787 células (0,83 por cento); subsolo, 215 de 64.302; interiores, 48 de 44.186; cidades grandes, 34 de 20.500; rotas marítimas, bases secretas, cidadezinhas e mapas subaquáticos, nenhuma.

Células de ressalto por tipo de mapa em Emerald; desenhado por figures.py a partir da saída de measure_map_features.py.4339

Um ressalto deixa o jogador descer rápido e obriga o caminho de volta a ser diferente, então uma rota curta tem um loop dentro dela. A cidadezinha, onde as pessoas moram e aonde o jogador chega, nunca tem um.

Travas vistas cedo: árvores cortáveis e as duas bicicletas

Emerald coloca 33 objetos de árvore cortável, 22 em rotas e 11 em interiores, a maioria nos enigmas dos ginásios.39 As duas bicicletas destravam chãos diferentes. As células da Mach Bike, encostas lamacentas e pisos rachados, somam 52 em rotas e 150 no subsolo; as células da Acro Bike, trilhos e encostas acidentadas, somam 85, todas em rotas.39 A Mach Bike acelera em três velocidades (sMachBikeSpeeds = {NORMAL, FAST, FASTEST}); a Acro Bike lê B segurado com uma direção como manobras, um empinado e um bunny hop.57

Por que funcionava

Travas que você vê antes de poder abrir são promessas. Árvores cortáveis e chão só de bicicleta mostram ao jogador um atalho na primeira passagem e o pagam numa passagem posterior, e as duas bicicletas de Emerald, com dois tipos de chão travado, transformam a escolha da bicicleta na escolha de qual metade dos atalhos você vê nesta viagem.3957 Os ressaltos fazem o mesmo trabalho para a direção: descer é rápido e de graça, subir é outro caminho.

Os ressaltos também são o único ponto deste post em que uma decisão anterior nossa faz resistência. A pesquisa de estruturas recusou ressaltos com o argumento de que altura livre é difícil de ler de cima, e o post de estruturas lista “a one-way ledge” (um ressalto de mão única) entre as coisas que a cidade não tem.3533 Um desnível de uma célula e mão única não é altura livre: não tem eixo z, só uma borda de mão única no grafo de caminhada. Então o briefing propõe uma forma restrita e deixa a decisão onde ela pertence, nos posts sobre elevação e rotas que ainda vão sair.

6. Os mundos dos outros: mistura de registros, frase da moda, telefone

Os sistemas desta seção são os que eu mais quero para uma praça, porque falam de outros jogadores sem precisar que esses outros jogadores estejam online no mesmo momento.

Bases Secretas e mistura de registros

Uma Base Secreta em Emerald comporta até 16 decorações; o quarto do jogador, 12; e um save guarda 20 bases, a sua e as que você recebeu de outros jogadores.58 Recebeu de onde? Da mistura de registros: quando dois jogadores conectam e misturam registros, os jogos copiam entre os saves um registro de 0x1444 bytes, 5.188. Os seus campos, em ordem, são todas as 20 Bases Secretas, 25 espaços de programas de TV, as notícias, o Mauville Old Man (o velho de Mauville), 5 frases da moda, a correspondência do Day-Care, um recorde da Battle Tower, um item de presente, a Lilycove Lady, dois Apprentices e os recordes do salão de ranking da Battle Frontier.26

Então, depois de uma tarde de cabo link, a base do seu amigo está no seu jogo, e você pode entrar nela. Os programas de TV dele passam na sua televisão. O recorde dele na Battle Tower vem junto. Na minha leitura, a maior parte do que parecia vivo em Emerald chegava de outra pessoa.

A TV

A TV de Emerald tem 25 espaços de programa: 5 para programas sobre o seu próprio jogo e 20 para programas que só chegam pela mistura de registros. Há 11 tipos de programa “normais” e 19 tipos que só existem pela mistura de registros (Trend Watcher, Secret Base Visit, Lotto Winner, Spot the Cuties e outros), além da reportagem de surto em massa; os acontecimentos de notícia contam 4 dias para trás antes de ir ao ar.27 Depois que o jogo é zerado, cada batalha que você termina, tendo capturado algo ou não, tem chance de 1 em 200 (rbernoulli(1, 200)) de agendar uma reportagem de surto, a menos que tenha sido uma batalha por link, de Safari, do Battle Frontier ou outra batalha especial, ou que já haja uma reportagem de surto nos primeiros 24 dos 25 espaços da TV (a verificação para um antes do último), e só se um dos 5 espaços para os seus próprios programas estiver vazio. A reportagem espera um dia antes de poder ir ao ar (daysBeforeOutbreak = 1, descontado pela atualização diária), e o surto em si só começa quando você assiste à reportagem numa televisão, o que chama StartMassOutbreak; a partir daí ele dura 2 dias e faz a espécie anunciada ser metade dos encontros numa rota (probability = 50).51 Os programas de surto viajam pela mistura de registros como qualquer outro, então o surto de um amigo pode chegar à sua televisão.5126

A frase da moda: um ditado com meia-vida

A “Dewford Trend” (a moda de Dewford) são duas palavras de Easy Chat que as pessoas do Dewford Hall repetem. O bloco de comentário no topo de dewford_trend.c é um documento de design. Cada frase tem uma popularidade “Initialized as a random value between 30-127 inclusive” (inicializada como um valor aleatório entre 30 e 127, inclusive); “If a submitted phrase is less trendy than the current one it won’t be accepted” (se uma frase enviada estiver menos na moda que a atual, ela não será aceita); e uma frase que fica “boring” (chata) vai “lose trendiness over time until it reaches 0” (perder popularidade com o tempo até chegar a 0), depois volta a ganhar até o seu máximo, onde fica chata de novo.4 O código tem duas exceções a essa regra de aceitação. A primeira frase que um save envia na vida, se o save nunca misturou registros, substitui as palavras atuais sem comparação nenhuma; e quando uma frase nova empata com a atual em popularidade, vence o máximo mais alto, e se esses também empatarem, um cara ou coroa (Random() & 1) decide.4 A atualização diária move cada frase 5 pontos por dia passado (clockRand = days * 5).4 Cinco frases são guardadas, ordenadas por popularidade; quando você mistura registros, as suas frases são substituídas pelas do parceiro, “unless the phrase is the same, in which case the version with a higher trendiness value is used” (a não ser que a frase seja a mesma, caso em que se usa a versão com maior popularidade).4

O Hipster e as palavras escondidas

As Trendy Sayings (expressões da moda) são outra coisa: um grupo escondido de 33 palavras do Easy Chat.28 O comentário da descompilação diz como você as consegue: elas são “normally inaccessible” (normalmente inacessíveis), e “The Hipster can unlock one word each time he is received via record mixing (and once if he is the player’s default Old Man)” (o Hipster pode desbloquear uma palavra cada vez que é recebido pela mistura de registros, e uma vez se for o velho padrão do jogador).28 O velho de Mauville vem em cinco tipos (Bard, Hipster, Trader, Storyteller, Giddy), e qual deles o seu jogo tem no começo é definido pelo último dígito do seu ID de treinador, (trainerId % 10) / 2. Então o Hipster só é o padrão quando esse dígito é 2 ou 3: um jogador em cada cinco. Todos os outros precisam misturar registros com um desses jogadores para conhecê-lo.28

Revanches e ligações por telefone

O telefone de Crystal guarda 10 contatos (CONTACT_LIST_SIZE 10). Vinte e quatro treinadores podem estar prontos para revanche, com uma flag diária cada; 10 podem ligar para dizer que têm um item para você; e cada um dos 24 tem um dia da semana e um período do dia em que você pode ligar para ele, 9 de manhã, 7 durante o dia (a segunda faixa de Crystal, das 10 às 18) e 8 à noite, de três ou quatro por dia.46 As ligações recebidas são racionadas: um temporizador (ReceiveCallDelays) de 20 minutos depois de cada ligação que você recebe, encurtando para 10, 5 e depois 3 a cada vez que acaba sem nenhuma, controla um sorteio que o código comenta como “50% chance for a call” (50% de chance de uma ligação); quem liga é sorteado entre os contatos disponíveis naquele período do dia, e nenhuma ligação chega enquanto você está numa entrada ou fora da área de cobertura.59

Por que funcionava

Os mundos dos outros chegavam ao seu. Cinco kilobytes carregavam 20 bases, 20 espaços da televisão dos outros e 5 ditados.2627 Nada disso precisava que o outro jogador estivesse presente quando você jogava; precisava que você o tivesse encontrado uma vez.

A frase da moda é um contágio com meia-vida. Depois da primeira frase de um save, uma nova só toma conta de uma cidade se superar a atual, apaga à medida que fica chata e se espalha por contato; quando dois saves se encontram, vence a cópia mais na moda de uma frase compartilhada.4 É uma mecânica social completa num punhado de números: uma pontuação, uma deriva, uma regra de contato.

O Hipster é escasso de propósito. Um jogador em cada cinco o tem; o resto o conhece por meio de alguém que tem, e cada encontro pode ensinar uma de 33 palavras escondidas.28 O próprio vocabulário vira um colecionável que viaja de pessoa para pessoa.

As interrupções são racionadas. Uma ligação é controlada por um temporizador e um cara ou coroa e nunca chega enquanto você está numa porta; logo depois de uma ligação a espera é a mais longa, 20 minutos.59 Na minha leitura, um mundo que fala com você só é encantador enquanto fala raramente.

7. Três limites diferentes: direito autoral, marca, patente

Tudo daqui até a seção 11 é o histórico: contra o que a Nintendo e a The Pokémon Company agiram, com que fundamento, e o que deixaram quieto. Importa manter separados os três tipos de proteção, porque quem fala em copiar Pokémon geralmente quer dizer um deles e recebe resposta com outro.

O direito autoral protege a expressão. A Circular 33 do U.S. Copyright Office deixa fora do direito autoral ideias, procedimentos, processos, sistemas e métodos de operação; tiles, sprites, música, texto e personagens específicos são expressão protegida.4434 O primeiro post desta série diz isso no seu FAQ, corrigido em 4 de outubro para nomear o direito autoral: estilo, método e sistema não são protegidos pelo direito autoral; a expressão específica é.34 Tudo nas seções 2 a 6 é, na minha leitura, método: um contador de passos, um relógio, um cartão com estrelas, uma frase com uma pontuação.

A marca protege sinais distintivos. O próprio site japonês da The Pokémon Company afirma que “ポケットモンスター・ポケモン・Pokémon” são marcas da Nintendo, da Creatures e da GAME FREAK.60 Um nome usado para vender um produto é uma questão de marca; o mesmo nome usado para descrever o que algo é, como um app que escaneia cartas de Pokémon precisa fazer, é uso nominativo, que o nosso próprio documento do mundo descreve como o jeito que todos os outros apps de cartas fazem, e é o limite que as regras do Kiradex já traçam.37

Uma patente protege um método reivindicado, passo a passo. O Japão e os Estados Unidos concederam à Nintendo e à The Pokémon Company patentes cujas reivindicações são programas de jogo, descritos como aquilo que o programa faz o computador fazer.1161 Uma reivindicação de patente é uma lista de passos; na minha leitura, que não é aconselhamento jurídico, uma reivindicação alcança um jogo só se o jogo executa cada passo dela, cada passo lido do jeito que o tribunal o interpreta, ou um equivalente dele, que os tribunais dos dois países reconhecem. A Suprema Corte dos EUA aplica essa doutrina dos equivalentes passo a passo, “to each of the individual elements of a claim” (a cada um dos elementos individuais de uma reivindicação), e a Suprema Corte do Japão estabeleceu em 1998 as condições em que um produto que difere de uma reivindicação numa parte ainda cai dentro dela.6263 Então mudar ou remover um passo é um argumento de que um jogo alterado fica fora de uma reivindicação, não um resultado: se fica ou não depende dessa interpretação e da equivalência, e no único caso deste histórico nenhum tribunal decidiu. A seção 9 lê as quatro reivindicações que importam aqui.

O histórico abaixo separa cada caso por qual dos três foi o terreno da disputa. Só um foi um caso de patente.

Uma linha do tempo vertical de 2016 a 2026 com cada acontecimento marcado pelo fundamento; para Uranium e Prism o fundamento de direito autoral é a minha leitura, já que as reportagens não citam nenhum, e as datas são as dos documentos ou das reportagens, com novembro de 2025, ao qual as reportagens não dão dia, posicionado no meio do mês. Direito autoral: 13 de agosto de 2016, os desenvolvedores de Uranium tiram os downloads do ar depois de notificações de remoção; 21 de dezembro de 2016, uma notificação de cessação e desistência ao Prism; 29 de agosto de 2018, relatada a remoção da ferramenta Essentials; 22 de março de 2024, o Relic Castle sai do ar depois de uma notificação DMCA relatada; 21 de fevereiro de 2025, o acordo de 107 milhões de RMB na China. Patente: 18 de setembro de 2024, o processo contra a Pocketpair; 8 de novembro de 2024, as três patentes nomeadas; 30 de novembro de 2024, o Palworld remove a invocação arremessada; 8 de maio de 2025, o planeio passa para um planador; 2 de setembro de 2025, concedida a US 12,403,397; 4 de novembro de 2025, reexame ordenado; novembro de 2025, os pedidos em Tóquio restringidos a versões antigas; 25 de março de 2026, todas as reivindicações reexaminadas rejeitadas numa primeira Office Action; 22 de julho de 2026, relatada a manutenção da rejeição de um pedido divisional relacionado; nenhum dos acontecimentos de patente é uma decisão sobre infração. Nenhum dos dois: o lançamento do Palworld, o comunicado da The Pokémon Company, a saída do Palworld do Early Access e as datas de audiência de 1º de outubro e 9 de novembro de 2026, agendadas.

O histórico por data e por fundamento; desenhado por figures.py a partir das páginas datadas citadas nas seções 8 e 9.43

8. Jogos de fã, uma ferramenta e um fórum: o que provocou ação

Pokémon Uranium, agosto de 2016: notificações de remoção, e nenhuma carta aos desenvolvedores, segundo eles mesmos

Uranium costuma ser descrito como um jogo que recebeu uma notificação de cessação e desistência; uma matéria sobre jogos de fã que o Aftermath publicou em 1º de outubro de 2026 diz que ele “was reportedly issued cease and desists from the legal teams at Nintendo and The Pokémon Company” (teria recebido notificações de cessação e desistência das equipes jurídicas da Nintendo e da The Pokémon Company).64 Os desenvolvedores disseram outra coisa na época. O Kotaku, em 13 de agosto de 2016, relatou que, depois de nove anos de trabalho, os fãs que o fizeram tinham removido todos os links de download, e publicou o comunicado deles na íntegra: “After receiving more than 1,500,000 downloads of our game, we have been notified of multiple takedown notices from lawyers representing Nintendo of America” (depois de mais de 1.500.000 downloads do nosso jogo, fomos notificados de várias notificações de remoção de advogados que representam a Nintendo of America). E: “While we have not personally been contacted, it’s clear what their wishes are, and we respect those wishes deeply” (embora não tenhamos sido contatados pessoalmente, está claro o que eles desejam, e respeitamos profundamente esse desejo). O Kotaku acrescentou que os desenvolvedores disseram que “haven’t received any cease & desist letters from Nintendo’s lawyers yet” (ainda não tinham recebido nenhuma carta de cessação e desistência dos advogados da Nintendo).5 O nosso próprio documento do mundo registrava isso como uma notificação de cessação e desistência; a frase exata é que Uranium foi tirado do ar depois de notificações de remoção, e que o nome estava no título.375

Pokémon Prism, dezembro de 2016: uma notificação de cessação e desistência quatro dias antes do lançamento

Prism era diferente na natureza: não um jogo novo no estilo de Pokémon, mas um ROM hack do próprio Crystal, oito anos em produção, com lançamento planejado para o dia de Natal. Kotaku, 29 de dezembro de 2016: “Nintendo hit them with a cease and desist four days before release” (a Nintendo mandou uma notificação de cessação e desistência quatro dias antes do lançamento), e tudo “seemed ready for an official release until December 21st, when representatives of Nintendo sent a cease and desist to the project” (parecia pronto para um lançamento oficial até 21 de dezembro, quando representantes da Nintendo enviaram uma notificação de cessação e desistência ao projeto). O criador então tirou do ar o seu site, que também hospedava dois outros ROM hacks, Pokémon Brown e Rijon Adventures.6 O Nintendo Life, no dia seguinte, traz a mesma data e o lançamento planejado para 25 de dezembro.65 Um scan com tarjas da carta foi publicado no Internet Archive por um terceiro que diz que um colaborador do Prism o enviou; a descrição de quem subiu é polêmica, e eu não li o scan, então ele é uma pista para o documento, e não uma fonte deste post.66

Pokémon Essentials, agosto de 2018: uma ferramenta

O Essentials era uma ferramenta gratuita para fazer jogos no estilo Pokémon no RPG Maker. TechSpot, 29 de agosto de 2018, a partir de uma reportagem do Ars Technica: a Nintendo enviou uma notificação de remoção DMCA, o Fandom, que hospedava a wiki da ferramenta, acatou, e os downloads foram removidos da seção de jogos de fã do PokéCommunity. A leitura do próprio TechSpot foi que “the assets Pokemon Essentials uses appear to be identical to the ones in Pokemon games” (os assets que o Pokemon Essentials usa parecem idênticos aos dos jogos de Pokémon).7

Relic Castle, março de 2024: um fórum, e um remetente nunca confirmado

O nosso próprio relatório de pesquisa agrupava o Relic Castle com o Essentials como uma remoção de 2018.33 Foi em março de 2024. GamesRadar+, 22 de março de 2024: o fórum de fãs, no ar desde 2014, saiu do ar; o comunicado dele dizia que “the Relic Castle website has been taken down following a DMCA takedown notice” (o site do Relic Castle foi tirado do ar após uma notificação de remoção DMCA). O site “didn’t host these games directly” (não hospedava esses jogos diretamente), observou o GamesRadar+, mas permitia links para eles, e quem enviou a notificação não foi confirmado.8

Como os projetos de fã são notados, nas palavras do advogado que os notava

Don McGowan foi o diretor jurídico da The Pokémon Company. Em março de 2024, o Aftermath perguntou a ele como a empresa lidava com notificações de cessação e desistência a projetos de fã, e ele respondeu: “Short answer: thanks to you folks” (resposta curta: graças a vocês). A pior coisa do mundo, ele diz aos seus alunos de direito, é quando um projeto de fã “gets press, because now I know about you” (sai na imprensa, porque agora eu sei de você). E a segunda metade: “You don’t send a takedown right away. You wait to see if they get funded (for a Kickstarter or similar); if they get funded then that’s when you engage. No one likes suing fans” (você não manda uma notificação de remoção na hora; você espera para ver se eles conseguem financiamento, num Kickstarter ou algo parecido; se conseguem, aí é que você age; ninguém gosta de processar fãs).67 O Video Games Chronicle publicou as mesmas citações no dia seguinte.68

China, 2025: uma cópia do jogo inteiro

O maior valor do histórico vem de um caso de direito autoral e concorrência desleal, não de um jogo de fã. O National Law Review relata que, em 21 de fevereiro de 2025, o Tribunal Popular Superior de Guangdong anunciou um acordo de 107 milhões de RMB a favor da The Pokémon Company sobre o jogo “Pokémon: Remastered”, ação aberta em dezembro de 2021; a empresa tinha pedido 500 milhões de RMB e obtido 107 milhões em primeira instância em Shenzhen.69 O raciocínio do tribunal de primeira instância, do jeito que a reportagem o resume, merece leitura atenta de qualquer pessoa que escreva uma homenagem: os personagens, os protagonistas e os mapas do jogo acusado correspondiam “one-to-one” (um para um) aos originais, e os seus sistemas eram “highly similar or even completely consistent, and many numerical system designs are the same” (muito semelhantes ou até completamente coincidentes, e muitos designs numéricos de sistema são iguais).69 Na minha leitura, os números foram um fio numa conclusão sobre um jogo que também copiou todo o resto; mas é um motivo pelo qual a seção 14 toma um punhado de números redondos como ponto de partida, define as suas próprias faixas onde as de um jogo não eram redondas, e nunca importa as tabelas de um jogo.

O que o histórico mostra

Três dos quatro casos de fãs usavam a expressão própria de Pokémon, e o quarto, Relic Castle, hospedava links para jogos que a usavam. Uranium usava o nome no título e, pela conta dos desenvolvedores, tinha sido baixado 1,5 milhão de vezes; Prism era um ROM hack de Crystal, construído sobre o código e a arte do próprio jogo; o Essentials distribuía assets que um jornalista chamou de idênticos aos dos jogos; o Relic Castle linkava para jogos assim.5678 Na minha leitura, o fundamento em cada um foi o direito autoral: dois foram notificações DMCA relatadas, que são notificações de direito autoral, embora quem enviou a do Relic Castle não tenha sido confirmado, e as reportagens sobre os outros dois não citam fundamento, mas os dois jogos eram construídos sobre a expressão dos originais, e Uranium levava o nome, o que é também uma questão de marca. Nenhum foi uma ação de patente. O ex-diretor jurídico acrescenta o gatilho: imprensa, e depois dinheiro.67

Minha leitura: o histórico mostra ação contra a expressão de Pokémon, e contra visibilidade somada a financiamento, não contra um jogo por ser do gênero. Todo jogo tributo da seção 11 é do gênero, é vendido por dinheiro e não foi relatado como alvo de nenhuma ação. Essa leitura é sobre o que aconteceu, não uma promessa sobre o que vai acontecer.

9. Palworld: o único caso sobre mecânicas

O Palworld é o caso que muda a leitura, porque é o único do histórico disputado com patentes. E ainda está aberto.

O comunicado, janeiro de 2024

A Pocketpair lançou o Palworld em 19 de janeiro de 2024.10 Em 25 de janeiro, a The Pokémon Company publicou no seu site corporativo um aviso intitulado 他社ゲームに関するお問い合わせについて, que traduzo como Sobre as consultas a respeito de jogos de outras empresas, em japonês com um texto em inglês embaixo. O texto em inglês: “We have not granted any permission for the use of Pokémon intellectual property or assets in that game. We intend to investigate and take appropriate measures to address any acts that infringe on intellectual property rights related to the Pokémon” (não concedemos nenhuma permissão para o uso da propriedade intelectual ou de assets de Pokémon naquele jogo; pretendemos investigar e tomar as medidas apropriadas contra quaisquer atos que infrinjam direitos de propriedade intelectual relacionados a Pokémon). O jogo não é nomeado.70 O texto japonês acima diz uma coisa a mais que o inglês deixa de fora: entre as consultas havia opiniões de que o jogo se parece com Pokémon (ポケモンに類似しているというご意見).70 A reportagem do Nintendo Life no mesmo dia nomeou o jogo.71

O processo, setembro de 2024

A Nintendo e a The Pokémon Company anunciaram em 19 de setembro de 2024 que tinham aberto um processo por infração de patente contra a Pocketpair no Tribunal Distrital de Tóquio “on September 18, 2024” (em 18 de setembro de 2024), pedindo “an injunction against infringement and compensation for damages” (uma medida inibitória contra a infração e indenização por perdas e danos) com o argumento de que o Palworld “infringes multiple patent rights” (infringe vários direitos de patente).9 O relatório da Pocketpair de 8 de novembro de 2024 nomeou as patentes e os pedidos feitos na ação:10

Patente Depositada Registrada
JP 7545191 30 de julho de 2024 27 de agosto de 2024
JP 7493117 26 de fevereiro de 2024 22 de maio de 2024
JP 7528390 5 de março de 2024 26 de julho de 2024

As autoras pedem uma medida inibitória contra o Palworld e 5 milhões de ienes mais juros de mora para cada uma delas, “compensation for a portion of the damages incurred between the date of registration of the patents and the date of filing of this lawsuit” (indenização por uma parte dos danos sofridos entre a data de registro das patentes e a data de abertura deste processo).10 O Google Patents lista a Nintendo e a The Pokémon Company como titulares das três.111213 As três foram depositadas depois do lançamento do Palworld, mas não do zero. O GamesRadar+, citando o agente de patentes japonês Kiyoshi Kurihara, relata que as três são patentes divisionais de uma patente-mãe que descreve como registrada em dezembro de 2021.72 As tabelas de família do Google Patents colocam isso de outro jeito: cada uma das três lista uma data de prioridade de 22 de dezembro de 2021 e descende, por divisão, de um pedido depositado naquele dia, JP 2021-208275 para 7493117 e 7545191 e JP 2021-208276 para 7528390; esses dois pedidos foram depois publicados como JP 7398425 B2 (14 de dezembro de 2023) e JP 7349486 B2 (22 de setembro de 2023). Dezembro de 2021 é a data de depósito; não encontrei data de registro para nenhum dos dois nas páginas salvas.111213

O que dizem as três reivindicações

Esta é a reivindicação 1 de cada uma, pela tradução automática do japonês do Google Patents; o texto japonês é o que vale, e as reivindicações podem ser corrigidas durante o litígio sem que a página do Google mostre isso.7333 Resumo, com as palavras da própria tradução entre aspas.

JP 7493117, o indicador. No “the first mode” (primeiro modo), o programa determina “a direction of aim in the virtual space based on a first operation input which is a directional input” (uma direção de mira no espaço virtual com base numa primeira entrada de operação que é uma entrada direcional); com uma segunda entrada, vira a mira para um personagem de campo e “a first indicator is displayed” (um primeiro indicador é exibido); com uma terceira, faz o personagem do jogador soltar “a capture item for capturing the field character in the aiming direction” (um item de captura para capturar o personagem de campo na direção da mira); num acerto, faz “a capture success determination” (uma determinação de sucesso da captura); e o indicador é “information indicating the ease of making a positive judgment of the successful capture judgment” (informação que indica a facilidade de obter um julgamento positivo na avaliação de captura bem-sucedida).11

JP 7545191, o arremesso. Apertar um botão prepara uma postura para soltar ou um item de captura, de um primeiro grupo de categorias, ou um personagem de combate, de um segundo; uma entrada direcional define a mira; uma entrada “using an operation button different from the operation button” (usando um botão de operação diferente do botão de operação) escolhe qual item de captura ou qual personagem de combate; soltar o primeiro botão arremessa o escolhido; um item de captura que acerta inicia a determinação de captura; e um personagem de combate solto onde pode lutar faz com que “a battle between the combat character and the field character on the field to commence” (comece no campo uma batalha entre o personagem de combate e o personagem de campo).12

JP 7528390, a montaria. O personagem do jogador é controlado por entrada de operação; ele monta um de “a plurality of types of rideable characters” (uma pluralidade de tipos de personagens montáveis) que possui, e “when a first operation input is performed while the player character is in the air” (quando uma primeira entrada de operação é feita enquanto o personagem do jogador está no ar), sobe em “an airborne rideable character” (um personagem montável aéreo) e se desloca pelo ar.13

O GamesRadar+ dá a mesma correspondência, a partir de Kurihara e do escritório de agentes de patentes Siarasia via Automaton: 7545191 a captura com mira e arremesso, 7493117 o indicador de chance de captura, 7528390 subir na montaria e montar.72

O que o jogo mudou

O aviso da Pocketpair de 8 de maio de 2025 diz o que ela fez. O patch v0.3.11, lançado em 30 de novembro de 2024, “removed the ability to summon Pals by throwing Pal Spheres and instead changed it to a static summon next to the player” (removeu a possibilidade de invocar Pals arremessando Pal Spheres e a trocou por uma invocação estática ao lado do jogador); a partir da v0.5.5, “gliding will be performed using a glider rather than with Pals” (o planeio será feito com um planador, e não com Pals). O aviso diz com todas as letras que “these changes were indeed a result of the ongoing litigation” (essas mudanças foram de fato resultado do litígio em andamento), e que a Pocketpair continua “to dispute these claims and assert the invalidity of the patents in question” (contestando esses pedidos e sustentando a invalidade das patentes em questão).74 Na minha leitura, cada mudança toca um passo de uma reivindicação: a primeira, a soltura arremessada de um personagem de combate na reivindicação 1 da JP 7545191; a segunda, a montaria aérea na da JP 7528390. Se o jogo alterado agora fica fora de alguma delas depende de como o tribunal interpreta esses passos; o aviso da Pocketpair relata o que ela mudou, não uma conclusão, e nenhum tribunal decidiu.

A restrição, novembro de 2025

O Automaton relatou em 12 de junho de 2026, a partir de autos do Tribunal Distrital de Tóquio revisados pela sua equipe japonesa e do Games Fray, que as autoras “revised the scope of their claims in November 2025 so that they now apply only to older versions of Palworld” (revisaram o alcance dos seus pedidos em novembro de 2025 para que agora se apliquem só a versões antigas do Palworld). A mesma reportagem: “While the plaintiffs are still seeking an injunction against Palworld, limiting the lawsuit to older versions of the game appears to reduce the likelihood that the current version will be directly affected” (embora as autoras ainda peçam uma medida inibitória contra o Palworld, limitar o processo a versões antigas do jogo parece reduzir a probabilidade de a versão atual ser diretamente afetada). Os autos mostravam uma sessão técnica agendada para 1º de outubro de 2026 e as opiniões preliminares do tribunal para 9 de novembro de 2026.29

Até 4 de outubro de 2026, a lista de avisos importantes da Pocketpair não tem nada sobre o processo depois de 8 de maio de 2025, e não encontrei nenhum veículo nomeado relatando o que aconteceu na sessão de 1º de outubro. Nenhuma sentença, acordo ou medida inibitória foi relatada.30 O Palworld saiu do Early Access em julho de 2026: o Steam lista o lançamento como “9 Jul, 2026”, e o Automaton relatou a data anunciada como 10 de julho.7529

Um jogo de fã como estado da técnica

Há uma ironia no histórico que merece um parágrafo próprio. O Automaton relatou em 22 de julho de 2026 que o Escritório de Patentes do Japão tinha mantido a rejeição do pedido divisional nº 2026-019762 da Nintendo e da The Pokémon Company, que descreve um “in-game monster-capturing system” (sistema de captura de monstros dentro do jogo). Um dos fundamentos principais foi um vídeo do YouTube de 2013 de um jogo de fã, Pokémon Generations. O lado da Nintendo argumentou que o jogo de fã infringia os seus direitos autorais; o examinador respondeu, no resumo do Automaton, que “whether an invention infringes on copyright or not has no bearing on determining inventive step” (se uma invenção infringe ou não direito autoral não tem relação com a determinação da atividade inventiva). A rejeição diz respeito a esse pedido divisional, não às patentes invocadas em Tóquio, e a Nintendo tinha três meses para pedir um julgamento de recurso contra ela.76 Um jogo de fã, o tipo de projeto de que tratavam os casos da seção 8, virou prova sobre a mecânica.

O lado americano: uma patente, em reexame

Não encontrei relato de nenhum processo nos EUA contra a Pocketpair. Existe uma patente americana. A US 12,403,397, cedida à Nintendo e à The Pokémon Company, foi depositada em 1º de março de 2023 e concedida em 2 de setembro de 2025.61 A sua reivindicação 1 move um personagem do jogador num campo e invoca “a sub character” (um personagem secundário) por uma entrada; se há um inimigo onde o personagem secundário aparece, a batalha corre num “a first mode in which the battle proceeds based on an operation input” (primeiro modo, em que a batalha avança com base numa entrada de operação), e se não há, o personagem secundário começa a se mover automaticamente; uma segunda entrada o manda numa direção, e um inimigo ali inicia “a second mode in which the battle automatically proceeds” (um segundo modo, em que a batalha avança automaticamente).61

O Engadget relatou em 4 de novembro de 2025 que o diretor do USPTO tinha ordenado pessoalmente um reexame da patente, citando um pedido da Konami de 2002 e uma publicação anterior da Nintendo como estado da técnica.7778 O escritório de advocacia MBHB escreveu em 3 de abril de 2026 que o reexame, nº 90/020,162, tinha produzido uma primeira Office Action (despacho do escritório), expedida em 25 de março de 2026, que rejeitou todas as reivindicações da patente por obviedade com base no 35 U.S.C. § 103, com resposta devida até 25 de junho de 2026, ou 25 de setembro de 2026 com prorrogações.79 Não encontrei relato da resposta da Nintendo nem de qualquer ato posterior.

Uma matriz de doze passos selecionados da reivindicação 1 de cada patente contra cinco colunas: JP 7493117, JP 7545191, JP 7528390, US 12,403,397 e Kiradex; os passos são resumos, não as reivindicações completas, e a nota jurídica é a minha leitura. Um personagem do jogador controlado ou movido por entrada é um passo da JP 7528390 e da US 12,403,397, e o Kiradex o executa: os colecionadores andam pela praça. A JP 7493117 reivindica mirar por entrada direcional, um indicador de chance de captura, arremessar um item de captura e uma determinação de captura; a JP 7545191 reivindica mirar, arremessar um item de captura, a determinação de captura, preparar um item de captura ou um personagem de combate segurando um botão e arremessar ao soltá-lo, escolher qual com outro botão, e um personagem de combate solto que inicia uma batalha; a JP 7528390 reivindica montar um entre vários personagens montáveis possuídos e subir numa montaria voadora por uma entrada em pleno ar; a US 12,403,397 reivindica um personagem secundário invocado que batalha sob controle, e que batalha automaticamente quando mandado numa direção. O Kiradex não executa nenhum dos passos de captura, combate ou montaria.

Passos selecionados de captura, combate e montaria da reivindicação 1 das quatro patentes lidas, com o passo de movimento que duas delas compartilham, e o app; desenhado por figures.py a partir de measure_patent_claims.out.txt e da reivindicação americana.4373

O que isso significa para uma homenagem

Minha leitura, não aconselhamento jurídico. Uma reivindicação alcança um produto só se o produto executa cada passo dela, do jeito que o tribunal interpreta cada passo, ou um equivalente dele, que os tribunais dos dois países reconhecem (seção 7). A Pocketpair mudou a invocação arremessada e o planeio e diz que continua contestando a infração e a validade das patentes; o Automaton relata que essas mudanças podem ter contribuído para que as autoras restringissem o processo a versões antigas, enquanto uma medida inibitória continua sendo pedida.7429 Nenhuma das duas coisas é uma conclusão de que o jogo atual fica fora das reivindicações, e nenhum tribunal decidiu. O Kiradex executa, sim, um passo reivindicado: um colecionador se move num campo por entrada, o primeiro passo da reivindicação americana e parte da reivindicação da JP 7528390, e um passo que a maioria dos jogos compartilha. Ele não tem captura, nem objeto arremessado, nem criatura, nem batalha, nem montaria, e cada uma das quatro reivindicações também exige passos de captura, combate ou montaria, então, na minha leitura, nenhuma delas descreve o Kiradex. Essa é a leitura de quatro patentes, não uma busca de liberdade de operação. A Nintendo e a The Pokémon Company têm outras patentes que não li, e não busquei patentes sobre contadores de passos, eventos movidos a relógio ou frases que se espalham. A lista do que nunca fazer, na seção 14, mantém o app longe dos passos de captura, combate e montaria lidos aqui, e de nada além disso.

10. O que as empresas publicam

Não encontrei nenhuma política publicada sobre jogos de fã de nenhuma das duas empresas. O que elas publicam é mais estreito, e os dois documentos apontam na mesma direção.

As regras do site da The Pokémon Company, no Japão

A página de regras do site oficial japonês tem um parágrafo sobre obras derivadas, e é uma licença de mão única. Quem cria ou usa uma obra derivada baseada em ポケモン財産, propriedade Pokémon, que a página define como material protegido por direito autoral, marca, patente, segredo comercial e direitos de privacidade e de imagem, concede ao grupo The Pokémon Company, à Nintendo, à Creatures, à GAME FREAK e a quem elas designarem uma licença não exclusiva, sublicenciável, isenta de royalties, perpétua, irrevogável e mundial para usá-la para qualquer fim. A frase seguinte, na minha tradução de 個人的な利用を超えた…利用を許諾するものではありません, diz que nenhum uso que as empresas façam da sua obra autoriza você a usar a propriedade Pokémon ou a sua obra derivada além do uso pessoal. Vale a lei japonesa, e o Tribunal Distrital de Tóquio tem jurisdição exclusiva em primeira instância.60 A mesma página diz que a empresa não aceita propostas ou ideias não solicitadas para personagens ou produtos (企画・アイデア…一切公募をしておりません), e que os nomes ポケットモンスター, ポケモン e Pokémon são marcas da Nintendo, da Creatures e da GAME FREAK.60

A página americana de informações jurídicas em pokemon.com, onde fontes secundárias dizem que mora uma cláusula em inglês sobre fan art, serviu uma verificação antibot ao meu coletor em 4 de outubro de 2026, e a sua cópia arquivada devolveu o mesmo bloqueio. Não tentei contorná-lo, então o texto dela fica sem verificação aqui e este post não o cita.80

As Game Content Guidelines da Nintendo

As diretrizes da Nintendo para compartilhamento de vídeos e imagens permitem gameplay e capturas de tela “for which Nintendo owns the copyright” (cujo direito autoral pertence à Nintendo) em conteúdo que você cria para sites de vídeo e imagem, e dizem “We encourage you to create videos that include your creative input and commentary” (incentivamos você a criar vídeos que incluam a sua contribuição criativa e os seus comentários). A monetização só é permitida pelos métodos que a Nintendo lista, e “you may not sell any videos, music, or images that you created using Nintendo Game Content” (você não pode vender nenhum vídeo, música ou imagem que tenha criado usando conteúdo de jogos da Nintendo). A pergunta 6 é a que importa para quem faz qualquer outra coisa: fan art, música e conteúdo fora de gameplay e capturas de tela ficam fora das diretrizes, e “Any other use of Nintendo’s intellectual property and creation of content outside of this scope is subject to the relevant laws of the applicable jurisdiction” (qualquer outro uso da propriedade intelectual da Nintendo e criação de conteúdo fora desse escopo está sujeito às leis pertinentes da jurisdição aplicável).81

O que isso soma

Minha leitura: não existe porto seguro para um jogo de fã. As diretrizes da Nintendo cobrem gameplay e capturas de tela e mandam todo o resto para a lei geral; as regras da The Pokémon Company licenciam a obra derivada de volta para a empresa e não licenciam nada além do uso pessoal para quem a fez.8160 O que existe no lugar é discricionariedade na aplicação, e o histórico da seção 8 é a cara que essa discricionariedade teve. Para o Kiradex, as consequências práticas são duas linhas na lista do que o briefing nunca fará: não fazer nada que seja obra derivada da propriedade Pokémon, e não mandar nada para os canais de fãs ou de ideias de nenhuma das duas empresas.

11. Os jogos tributo, nas próprias palavras

Coromon, Nexomon: Extinction, Cassette Beasts, Temtem, Monster Sanctuary e Moonstone Island trazem loops de capturar e criar em mundos de pixel ou low-poly, todos são vendidos por dinheiro, e não encontrei relato de que algum deles tenha sido alvo de uma ação. Como eles se descrevem é a orientação mais prática deste post, porque é o que estúdios em atividade fazem de fato.

As páginas da loja não citam ninguém

Contei a palavra nas fichas da loja do Steam de sete jogos, esses seis e o Palworld, obtidas pela API de detalhes de apps do Steam em 4 de outubro de 2026. Nas descrições curta e longa, nenhum dos sete diz “Pokémon”. Eles dizem “monster-taming RPG” (RPG de domar monstros; Coromon), “a return to classic monster catching games” (uma volta aos clássicos jogos de capturar monstros; Nexomon: Extinction), “Collect awesome monsters” (colecione monstros incríveis) com um “Fusion System” (sistema de fusão; Cassette Beasts), “an online creature-collection adventure” (uma aventura online de coleção de criaturas; Temtem), “Monster taming meets metroidvania” (domar monstros encontra o metroidvania; Monster Sanctuary), “a creature-collecting life-sim” (um simulador de vida de coleção de criaturas) com “card-based encounters” (encontros baseados em cartas; Moonstone Island), e “Fight, farm, build and work alongside mysterious creatures” (lute, cultive, construa e trabalhe ao lado de criaturas misteriosas; Palworld).31 Uma ficha contém a palavra: o campo de citações de review do Temtem traz uma frase de imprensa da Rock Paper Shotgun que o chama de “A Pokemon-like that listens to what fans want” (um jogo no estilo Pokémon que escuta o que os fãs querem).31 Nessas sete fichas, as palavras dos próprios estúdios nunca usam o nome para vender.

As entrevistas falam o nome livremente

Em entrevistas, os mesmos desenvolvedores falam de Pokémon abertamente, como uma influência da qual partiram e da qual depois se afastaram. O Nintendo Life perguntou a vários deles, para os 30 anos da série, numa matéria publicada em 2 de março de 2026. Guillermo Andrades, da Crema: “In the early days of developing Temtem, we wanted to create almost a 1:1 homage to Pokémon” (nos primeiros dias do desenvolvimento de Temtem, queríamos criar uma homenagem quase 1:1 a Pokémon), antes de a equipe achar mais espaço para “different approaches and unique twists” (abordagens diferentes e reviravoltas próprias). O desenvolvedor principal de Nexomon, JVemon: “Strong inspirations needed to be drawn if we were to tap into the same player base” (era preciso se inspirar com força se quiséssemos alcançar a mesma base de jogadores). Jochem Pouwels, do Coromon, chamou a grama alta de “a little slot machine of possibility” (um pequeno caça-níquel de possibilidades). Sandy Spink, de Moonstone Island: “I got an atomic purple Game Boy Color and Pokémon Blue for my sixth birthday” (ganhei um Game Boy Color roxo translúcido e Pokémon Blue no meu sexto aniversário). E Tom Coxon, da Bytten Studio: “I’ve never felt like Pokémon was the only thing a monster-collecting RPG could be” (nunca senti que Pokémon fosse a única coisa que um RPG de coleção de monstros pudesse ser).32

Cassette Beasts é a declaração de intenção mais clara. A pergunta fundadora, como relatou o Nintendo Life em abril de 2023, foi “How can two people make a monster-collecting game that does stuff that Pokémon doesn’t do?” (como duas pessoas podem fazer um jogo de coleção de monstros que faça coisas que Pokémon não faz?). Jay Baylis: “We love Pokémon, sure, but we’re not making a game meant to be a tribute or derivative” (a gente ama Pokémon, claro, mas não estamos fazendo um jogo pensado para ser tributo ou derivado).82 O anúncio do Temtem em abril de 2018 foi relatado pelo Gematsu como “a massively multiplayer creature collection adventure game inspired by Pokemon” (um jogo de aventura multijogador massivo de coleção de criaturas inspirado em Pokémon), nas palavras do veículo.83

Por que funciona

Minha leitura: a norma de trabalho entre esses estúdios é a mesma para a qual apontam a lei e as diretrizes. Cite Pokémon na conversa para descrever de onde você veio; nunca use o nome para vender; desenhe tudo você mesmo; e mude o loop o suficiente para que ele seja seu (a fusão em Cassette Beasts, cartas em vez de batalhas em Moonstone Island). O Kiradex está mais longe do gênero do que qualquer um deles, sem criaturas, sem captura e sem batalha nenhuma, e pega menos emprestado: uma caminhada, um relógio, um cartão, um ditado.

12. O ofício, como regras com números

Estas são as regras a partir das quais o briefing é construído. Cada uma enuncia uma mecânica em termos gerais e nomeia o fato medido em que se apoia. Os números são os dos jogos antigos, mantidos como pontos de partida para a nossa própria calibragem, nunca como tabelas a importar; o caso da China da seção 8 é o motivo dessa distinção.69

Elemento Regra Fonte
Batida de passos Avançar o que depende de passos num ritmo grosso, de 128 a 512 passos, nunca a cada passo, para que a recompensa chegue como acontecimento, e não como medidor Gen 2: ovos a cada 256 passos, felicidade a cada 512; Gen 3: um sorteio de amizade de 50 por cento por membro do grupo a cada 128, ovos a cada 256
Orçamento de passos Gastar o que é limitado pela caminhada em passos, não em segundos; uma proteção curta, média e longa de 100, 200 e 250 passos; uma saída de 500 Repels, sem mudança da Gen 1 à Gen 3; a Zona Safari de Emerald
Partes do dia Dividir o dia em poucas partes com nome pelo relógio do próprio aparelho; as nossas são 6, 9, 17 e 20, não as 4, 10 e 18 dos jogos O TimesOfDay de Crystal; o Daylight.Phase do Kiradex
Compromissos Um evento recorrente em dias da semana com nome, um sorteio semanal num dia fixo, no máximo uma janela por dia da semana por contato O Concurso de Captura de Insetos em três dias por 20 minutos; o Número da Sorte às sextas; 24 janelas de revanche
Crescimento Quatro estágios, o último quatro vezes mais longo que cada um dos três primeiros (256, 256, 256 e 1.024 passos na praça no briefing); calculado a partir do tempo passado na volta; uma colheita madura espera quatro durações de estágio e depois cai, e só uma ausência muito longa apaga a planta Berries de Emerald: de 4 a 96 horas, berries não colhidas somem quando o estágio com berries termina, a árvore apagada após 71 durações de estágio de ausência
Sala segura Um lugar onde as mudanças do dia nunca disparam enquanto você está nele Emerald pula as atualizações do dia num Centro Pokémon
Estrelas Quatro estrelas, quatro tipos diferentes de jogo, cada uma recolorindo o cartão; nunca duas para uma mesma atividade, nunca uma que possa ser comprada As quatro estrelas e as cinco cores de cartão de Emerald
Grade Uma caixa é uma página de 30, 6 por 5 As caixas da Gen 3, que cresceram de 20 por caixa
Ressaltos Em rotas, nunca em cidades; de 10 a 25 células de ressalto numa primeira rota Emerald: 726 células de ressalto em rotas, 0 em 7 cidadezinhas; de 13 a 24 nas Rotas 101 a 104
Sequências Séries de sete, com marcos em 5 e 10 séries Os desafios de 7 da Tower; o seu Brain como a 35ª e a 70ª batalha
Ditado que se espalha Uma pontuação que começa aleatória dentro de uma faixa fixa, deriva 5 por dia, fica velha no pico e nova de novo em 0; um novo substitui o antigo só se pontuar mais; quando dois lugares se encontram, vence a cópia mais alta de um ditado compartilhado; guardar 5 A frase da moda de Emerald, cuja pontuação começa entre 30 e 127; Emerald também deixa entrar sem disputa a primeira frase de um save e decide um empate total no cara ou coroa, o que o briefing descarta, e o briefing define a sua própria faixa
Professor escasso Um professor, difícil de achar (o nosso fica numa sala por vez e se muda toda semana), encontrado por contato; cada encontro, no máximo um por dia, ensina a próxima palavra de uma lista escondida numa ordem fixa O Hipster: um jogador em cada cinco, 33 palavras escondidas
Sorteio da coleção Estudado, não construído: um sorteio comparado com tudo o que o jogador tem recompensa uma coleção grande, mas o prêmio é aleatório, e os cosméticos desta série nunca são aleatórios A Lottery Corner de Emerald; o Número da Sorte semanal de Crystal; a regra de cosméticos do post sobre personagens
Interrupções Controlar qualquer interrupção não solicitada com um temporizador que volta ao seu valor mais longo depois de cada uma, e com um cara ou coroa, e nunca numa porta O temporizador de ligações de Crystal: 20 minutos depois de uma ligação, depois 10, 5 e 3 enquanto nenhuma chega, e o seu sorteio de 50 por cento
Tetos Coisas num lugar construído 16, num quarto 12, lugares de outras pessoas guardados 20 Os tetos de Base Secreta, quarto e bases de Emerald
Mundos dos outros Deixar que os lugares, as notícias e os ditados de outros jogadores cheguem ao seu, sem precisar que estejam online ao mesmo tempo O registro misturado de 5.188 bytes de Emerald
Expressão Mecânicas mais a sua própria expressão; nada de nomes, arte, música, texto ou código dos jogos O histórico de 2016 a 2024; a Circular 33
Passos reivindicados Deixar de fora os passos de captura, combate e montaria das reivindicações lidas: nenhum item de captura mirado e arremessado, nenhum indicador de captura, nenhum companheiro de combate solto, nenhuma montaria aérea, nenhum ajudante invocado que lute em dois modos JP 7493117, 7545191, 7528390; US 12,403,397

Fontes da tabela: o contador de passos;121415411716 o relógio;1845192146223 o cartão e as caixas;2324 os ressaltos;39 as sequências;25 a mistura de registros;4285826 o sorteio;5636 as ligações;59 o histórico e as reivindicações.4411121361

Duas regras merecem uma frase cada. A sala segura é a que eu não teria imaginado sem ler o código: um mundo que muda sozinho precisa de um lugar onde ele não muda, e para o Kiradex esse lugar é o quarto do próprio colecionador. E a regra da expressão é toda a metade jurídica numa linha, e é por isso que ela fica numa tabela de design e não num aviso legal: é uma regra que a forja segue, pixel por pixel, do mesmo jeito que segue a paleta.

13. O jeito Apple: passos no mundo, um dia pelo calendário

Nada no briefing precisa de um framework novo. Precisa de duas decisões bem tomadas: de onde vem um passo, e o que é um dia.

Um passo é um passo na praça, não na rua

O iOS oferece duas formas de contar os passos reais de uma pessoa. O CMPedometer, do Core Motion, disponível desde o iOS 8.0, é “An object for fetching the system-generated live walking data” (um objeto para obter os dados de caminhada ao vivo gerados pelo sistema), e usá-lo exige no Info.plist do app uma descrição de uso que o sistema mostra no pedido de permissão; o tipo de quantidade stepCount do HealthKit, também do iOS 8.0, é “A quantity sample type that measures the number of steps the user has taken” (um tipo de amostra de quantidade que mede o número de passos que o usuário deu).8485

O briefing não usa nenhum dos dois. Os passos que fazem a planta da seção 14 crescer são passos na praça. O servidor já rejeita um movimento para qualquer tile que não seja caminhável e limita a frequência com que um colecionador pode se mover; ele ainda não verifica se um movimento é para um tile vizinho, então contar um passo vai significar contar um movimento aceito de um tile, o que o teste de aceitação do briefing fixa.86 Minha leitura: pedir permissões de movimento ou de saúde num app para crianças para fazer crescer uma decoração em pixel não é proporcional, colocaria uma permissão de saúde num app de colecionismo sem nenhum propósito de colecionismo, e transformaria a planta num rastreador de atividade física, que é outro produto. Os jogos antigos também contavam passos no mundo.

Um dia é o dia do calendário do colecionador

O Kiradex já lê a hora do relógio do aparelho: Daylight.Phase(hour:) associa das 6 às 9 à manhã, das 9 às 17 ao dia, das 17 às 20 ao fim de tarde e o resto à noite, e um argumento de inicialização -plazaHour fixa a hora para testes de interface.45 Um evento diário precisa de mais uma ideia: uma chave de dia. O Calendar, do Foundation, a dá diretamente. startOfDay(for:) retorna “the first moment of a given Date” (o primeiro momento de uma data), e isDate(_:inSameDayAs:) responde se duas datas caem no mesmo dia, ambos disponíveis desde o iOS 8.0; com Calendar.current, eles respondem pelo calendário do próprio colecionador.8788 Um esboço da verificação para a caixa matinal, que ainda não está no app. A caixa chega às 06:00, o início da manhã do Daylight, e espera até ser aberta, então a verificação só pergunta se a caixa de hoje já chegou e se já foi aberta. Ela lê a hora do mesmo jeito que o palco da praça já faz, de Daylight.forcedHour quando um teste inicia o app com -plazaHour, e do relógio do colecionador nos outros casos, para que o teste de interface do briefing possa controlá-la:

/// Whether a crate is waiting for this collector now: today's crate has
/// arrived (it comes at 06:00, the start of Daylight's morning) and they
/// have not opened one today. It does not leave at 09:00.
func crateIsWaiting(lastOpened: Date?, now: Date = .now,
                    calendar: Calendar = .current) -> Bool {
    let hour = Daylight.forcedHour ?? calendar.component(.hour, from: now)
    guard hour >= 6 else { return false }
    guard let lastOpened else { return true }
    return !calendar.isDate(lastOpened, inSameDayAs: now)
}

Isso é, na forma, o UpdatePerDay de Emerald: o estado do dia é calculado na chegada a partir da data, e nada precisa continuar rodando para que ele esteja certo.22 Para um app que fica aberto atravessando a meia-noite, duas notificações o rearmam. NSCalendarDayChanged é “posted whenever the calendar day of the system changes, as determined by the system calendar, locale, and time zone” (publicada sempre que o dia do calendário do sistema muda, conforme determinado pelo calendário, pela localidade e pelo fuso horário do sistema), desde o iOS 8.0; a significantTimeChangeNotification, do UIKit, é publicada para “a change to a new day (midnight), a carrier time update, or a change to, or from, daylight savings time” (uma mudança para um novo dia, à meia-noite, uma atualização de horário da operadora, ou a entrada ou saída do horário de verão).8990

O que o servidor precisa

O servidor da praça hoje só cuida de presença: ele repassa posições e falas prontas e não guarda nada.8633 Dois itens do briefing mudam isso, e são de naturezas diferentes. O ditado que se espalha precisa de um pequeno registro persistente por sala da praça: dois índices de palavra, uma pontuação, um pico, uma direção de deriva e a data do servidor em que a deriva foi aplicada pela última vez, sem nada sobre quem propôs ou levou o ditado. Esse registro pertence a uma sala, não a uma pessoa. As rosetas do salão semanal precisam de uma contagem de participações por colecionador, e isso pertence, sim, a uma pessoa: é histórico de participação, guardado sob o identificador pelo qual o servidor reconhece um colecionador. Hoje esse identificador é um que o app cria por conta própria: um UUID gerado no aparelho na primeira vez que o colecionador entra na praça, guardado no armazenamento do app e enviado em toda conexão, onde o servidor o lê como UUID.86 O documento do mundo do app planeja identificar os colecionadores no servidor pelo ID de jogador do Game Center, e diz sobre ele: “That is a persistent identifier, which COPPA counts as personal information when combined with other data” (é um identificador persistente, que a COPPA considera informação pessoal quando combinado com outros dados), então o design inclui uma política de privacidade, nada de analytics ou anúncios de terceiros, “deletion on request” (exclusão a pedido), e é feito “to collect as little as possible from anyone” (para coletar o mínimo possível de qualquer pessoa).37 Na minha leitura, o UUID do próprio app também é um identificador persistente, porque é criado uma vez e mantido, então essas regras valem para a contagem de participações seja qual for o identificador sob o qual ela é guardada (o item 5 do briefing diz como). Minha leitura: tudo o que é compartilhado entre colecionadores, como a deriva diária do ditado, deve rodar pela data do servidor e não pela de um celular, porque o relógio de um celular pode ser adiantado; tudo o que é privado e cosmético, como a caixa, pode confiar no celular, porque adiantar o próprio relógio para abrir um adesivo mais cedo não engana ninguém.

Quanto custa

Nada disso foi construído, então nada foi cronometrado. Uma chave de dia é uma chamada ao calendário e um contador de passos é um inteiro por colecionador; espero que nenhum dos dois apareça num profiling, e não vou afirmar isso como fato até uma build ser medida num celular.

14. O briefing: o que o Kiradex constrói e as verificações que precisa passar

Esta seção é a minha síntese, escrita para o app. Cada elemento mantém uma mecânica das seções 2 a 6 e substitui toda a expressão pela do próprio Kiradex: a sua paleta, os seus tiles desenhados pela forja, as suas falas prontas, a sua estrela kira. Cada um nomeia aquilo com que não pode se parecer e uma verificação que um teste, uma captura ou um script consegue rodar. As notas jurídicas são leituras, não aconselhamento.

O que já existe e serve de base: a praça de tiles de 16 pixels, com as falas prontas guardadas no servidor e um servidor que só cuida de presença e não guarda nada; Daylight.swift com as suas próprias fases (manhã das 6 às 9, dia das 9 às 17, fim de tarde das 17 às 20, noite), que já não são as 4, 10 e 18 de Crystal e continuam assim; o salão semanal com o seu tema; o cartão do colecionador com o nível de patrono, os pins e os níveis vindos de escaneamentos reais; e o quarto de cada colecionador.86453533

1. A planta no parapeito: um contador de passos que faz algo crescer no quarto

  • Mecânica. O quarto de cada colecionador tem um vaso com uma planta junto à janela. Os passos na praça e nas rotas a alimentam: um estágio de crescimento a cada 256 passos, quatro estágios (sementeira, broto, folhosa, florida); o último estágio dura quatro vezes mais e então solta uma flor prensada, uma decoração de quarto na próxima das 14 rampas da paleta da cidade, numa ordem fixa, nunca aleatória, e a planta recomeça no broto. Passos dentro dos quartos nunca contam: o quarto é o lugar seguro, do jeito que Emerald pausa o veneno numa Base Secreta e as atualizações do dia num Centro Pokémon. (Regras: batida de passos, crescimento, sala segura.)1142234
  • Por quê. Andar é o único verbo constante da praça; um ritmo grosso transforma a flor num acontecimento; e a flor é algo para posicionar, o que alimenta o quarto.
  • Passos são passos na praça, não dados de saúde. Nada de Core Motion, nada de HealthKit (seção 13).
  • Não pode se parecer com. Um ovo, uma incubadora, qualquer coisa que choca, uma árvore de berries, nomes ou sprites de berries, uma mecânica de rega ligada a faixas de colheita, um Day-Care. Nada que vire uma criatura. Nenhum “berry”, “egg” ou “hatch” em nenhuma string.
  • Aceitação. Um teste de servidor faz um bot andar 2.048 passos de um tile e confirma mudanças de estágio em 256, 512 e 768, uma flor prensada e a planta de volta ao broto em 1.792 (o estágio florido dura 1.024 passos), a mudança seguinte em 2.048, e nenhuma por passos dados dentro de um mapa de quarto nem por um movimento aceito de mais de um tile; uma captura do quarto em cada estágio mostra a planta desenhada pela forja, e uma verificação de paleta encontra cada pixel dentro da paleta da forja.

2. A caixa matinal: um relógio diário com um evento de manhã

  • Mecânica. No início da manhã do próprio Kiradex, às 06:00 no relógio do colecionador (Daylight.Phase.morning começa às 6), uma caixa de entrega chega na frente da loja de cartas, e fica ali até ser aberta. Abri-la dá a próxima coisa de uma lista fixa: um adesivo, uma cor de moldura ou uma palavra para o ditado (item 6). Uma caixa por dia, e elas nunca se acumulam. O estado do dia é calculado na chegada a partir da data local, nunca por um temporizador rodando. (Regras: partes do dia, compromissos, crescimento.)4522
  • Sem contagem regressiva, sem sorte. A regra desta série para cosméticos é “never random, never on a countdown” (nunca aleatório, nunca com contagem regressiva).36 Então a caixa não tem prazo: ela não vai embora às 09:00, e como o conteúdo vem em ordem de uma única lista, um dia pulado só atrasa o próximo adesivo e nunca faz perder nenhum. A manhã é quando ela chega, não uma janela que precisa ser pega.
  • A forma da semana. Dar à semana dias com nome, como Crystal fazia, mas com no máximo um compromisso por dia: o dia de julgamento do salão continua semanal, como planejado, e numa noite de dia útil o lojista rearruma a vitrine.1921
  • Não pode se parecer com. Um Concurso de Captura de Insetos (uma captura cronometrada na terça, na quinta e no sábado), a fabricação de Poké Balls do Kurt, um programa de loteria no rádio, um Pokégear ou um telefone. Nada de ligações telefônicas dentro do jogo.
  • Aceitação. Um teste de interface iniciado com -plazaHour 7 mostra uma caixa fechada, e um iniciado com -plazaHour 21 também; um com -plazaHour 5 ainda não mostra nenhuma. Um teste unitário da chave de dia mostra que uma caixa aberta duas vezes na mesma data local concede uma vez só, e que avançar a data um dia a rearma; um teste que pula três dias e depois abre uma caixa recebe o próximo item da lista, não um três posições adiante.

3. O cartão do colecionador com estrelas

  • Mecânica. O cartão que abre quando alguém toca em você ganha até quatro estrelas, cada uma por um tipo diferente de jogo, e a sua borda muda a cada estrela na sequência própria do Kiradex: lisa sem nenhuma, depois fosca, com filete de foil, borda holo e kira completo com quatro. Estrelas propostas, cada uma vinda de colecionismo real ou de jogo na praça: uma coleção real completada por escaneamentos; 100 quartos diferentes visitados; uma colocação no salão semanal; e escaneamentos em 30 dias diferentes. O nível de patrono continua sendo uma linha separada no cartão, nunca uma estrela. (Regra: estrelas.)23
  • Por que não uma sequência de 30 dias. O dossiê propunha uma sequência de escaneamentos de 30 dias. Troquei por 30 dias diferentes, que nunca expiram, porque uma sequência que se quebra pune uma criança por uma semana fora, e porque o PEGI classifica sequências de login que expiram desde junho de 2026, como registra o post sobre personagens desta série.3336
  • Não pode se parecer com. O nome “Trainer Card” (Cartão de Treinador); o layout do Cartão de Treinador (retrato à direita, fileira de insígnias embaixo, número de ID e dinheiro); paletas de cartão verde, bronze, cobre, prata e ouro; formatos de insígnia; referências a ginásios; um tempo de Hall da Fama. As estrelas são desenhadas só como a estrela kira do Kiradex.
  • Aceitação. Um teste de snapshot renderiza o cartão com 0 a 4 estrelas e encontra as cinco bordas nessa ordem; um teste unitário prova que nenhum caminho de compra define uma estrela (as transações do StoreKit nunca tocam os campos de estrela); uma busca por “Trainer” no catálogo de strings não encontra nada.

4. Um desnível de mão única numa rota

  • Mecânica. Na rota além da praça, desníveis de mão única de uma célula de altura: você desce por eles uma fileira e nunca sobe de volta. Cada trecho deles faz o caminho de volta ser diferente, então uma rota curta tem um loop. De 10 a 25 células de desnível numa primeira rota, contra as 13 a 24 das Rotas 101 a 104; nenhuma na cidade. (Regra: ressaltos.)39
  • Quem decide. A pesquisa de estruturas recusou ressaltos porque altura livre é difícil de ler de cima; um desnível de uma célula e mão única não tem altura, só uma aresta dirigida no grafo de caminhada. Este briefing restringe a recusa em vez de derrubá-la, e a decisão é dos posts sobre elevação e rotas desta série.3533
  • Não pode se parecer com. O tile de ressalto de Pokémon (uma borda de grama com um filete claro em cima e uma linha de sombra escura), a sua animação de pulo ou o seu som. Desenhá-lo na forja como um meio-fio de pedra ou um degrau de cerca viva na paleta do Kiradex, com quadros de descida próprios.
  • Aceitação. A validação de caminhada do servidor tem arestas dirigidas nas células de desnível; um teste confirma que o passo inverso é recusado; um script de busca em largura relata um caminho de volta diferente do de ida.

5. O salão semanal, com séries de sete

  • Mecânica. Manter o julgamento semanal que o salão já planeja. Acrescentar a forma do Frontier à participação, não à vitória: cada sete participações rendem uma roseta do salão no cartão do colecionador, e em 35 e 70 participações, cinco e dez séries, o zelador do salão sai para ver a exposição. As participações contam sempre que acontecem, nunca só em semanas seguidas, pelo motivo do item 3. Rosetas vêm de participar e se classificar, nunca de comprar. (Regra: sequências.)25
  • Dados. A contagem de participações é histórico de participação ligado ao identificador de um colecionador, então é informação pessoal pelas próprias regras do app: ela é guardada sob o único identificador pelo qual o servidor reconhece um colecionador, seja ele qual for no momento, e sob nada mais (hoje, o UUID que o app gera para a praça; o ID de jogador do Game Center quando o servidor passar a usá-lo, como o documento do mundo planeja; os dois são identificadores persistentes), coberta pela política de privacidade, nunca enviada para analytics ou anúncios, e apagada junto com o resto do registro do colecionador num pedido de exclusão. É uma única contagem acumulada, sem registro de participações individuais. O documento do mundo não define prazo de retenção; isso fica para a leitura do advogado que o próprio documento já pede.3786
  • Não pode se parecer com. As categorias de concurso (Cool, Beauty, Cute, Smart, Tough), os nomes de nível (Normal, Super, Hyper, Master), o palco do Contest Hall, as rodadas de apresentação, uma Battle Tower, os símbolos do Frontier, os designs de fita de Pokémon. As rosetas do Kiradex são próprias, na sua própria paleta.
  • Aceitação. Um teste de servidor faz um participante simulado passar por 70 participações e confirma rosetas em 7, 14 e assim por diante, e a visita do zelador em 35 e 70; um teste com um patrono do nível mais alto não mostra diferença de pontuação; um teste de exclusão remove um colecionador e não encontra nenhuma contagem de participações sob o identificador dele.

6. O ditado da semana: uma frase que se espalha entre praças

  • Mecânica. Cada sala da praça tem um ditado: duas palavras do vocabulário pronto do próprio Kiradex, um sentimento e uma palavra de colecionismo (“lucky binder”, “quiet holo”). Quando um par é proposto, o servidor dá a ele um pico entre 25 e 100, a faixa própria do Kiradex (a de Emerald vai de 30 a 127, sob o teto de um campo de 7 bits), e uma pontuação inicial entre 25 e esse pico. A pontuação sobe 5 por dia até o pico, onde o ditado fica velho, depois desce 5 por dia até um piso de 0, onde ele fica novo e sobe de novo; o movimento de um dia que passaria do pico ou do piso para nele. Um colecionador pode propor um par novo no mural; ele só toma conta da sala se a sua pontuação for estritamente maior, e num empate a sala fica com o seu. Essa é a simplificação do Kiradex: Emerald deixa entrar a primeira frase de um save sem comparação e decide um empate total no cara ou coroa. Quando um colecionador passa de uma sala para outra, o ditado viaja com ele, e onde os ditados de duas salas se encontram, vence a pontuação mais alta. Os colecionadores da própria cidade repetem o ditado atual. Um deles, o colecionador de palavras, fica numa sala por vez e se muda toda semana; conversar com ele desbloqueia a próxima palavra pronta de uma lista escondida, numa ordem fixa, nunca aleatória, e no máximo uma palavra por dia. (Regras: ditado que se espalha, professor escasso.)428
  • Servidor. Um pequeno registro persistente por sala: dois índices de palavra, uma pontuação, um pico, uma direção de deriva e a data do servidor em que a deriva foi aplicada pela última vez. Numa leitura, o servidor aplica 5 pontos para cada dia desde essa data, um dia de cada vez, e depois grava a data de hoje, então um dia é aplicado uma vez só, não importa quantas vezes a sala seja lida ou o servidor reinicie. O UpdatePerDay de Emerald faz o mesmo com um número de dia guardado: compara com o de hoje, passa a diferença para a moda e depois grava o de hoje.22 O registro pertence à sala: nada nele diz quem propôs ou levou o ditado (seção 13).
  • Segurança infantil. Só palavras prontas, de listas que o servidor guarda e pode aposentar, como já acontece com as falas prontas da praça. Nada de texto livre nem de palavras inventadas por usuários.86
  • Não pode se parecer com. Os grupos de palavras e as palavras do Easy Chat (incluindo as 33 Trendy Sayings), o Dewford Hall, o velho de Mauville, o visual do Hipster, a mistura de registros como recurso com nome, um programa de TV sobre a moda.
  • Aceitação. Um teste de servidor: o ditado da sala A em 90 encontra o da sala B em 60 quando um colecionador anda de A para B, e o de B vira o de A; um par novo com a mesma pontuação que o da sala não toma conta dela. Um teste de deriva começa com um ditado em 45, subindo, com pico de 60: três leituras na data seguinte do servidor o deixam em 50, não em 60; depois de um reinício do servidor ele ainda lê 50 nessa data; depois, dez dias sem leituras, e a primeira leitura aplica os dez de uma vez, subindo até 60, velho, e descendo até 20, o mesmo que ler uma vez por dia; um ditado velho em 10 lê 5 três dias depois, subindo depois de tocar 0.91 Um script compara o vocabulário pronto com as listas de palavras do Easy Chat do pokeemerald e não encontra entradas compartilhadas de várias palavras (palavras soltas comuns, como “hello”, são inevitáveis e tudo bem). Um teste do colecionador de palavras: a enésima conversa de um colecionador com ele, cada uma num dia diferente, desbloqueia a enésima palavra da lista escondida, e uma repetição no mesmo dia não desbloqueia nada.

Nunca

  1. Nenhuma expressão de Pokémon em lugar nenhum do mundo: nenhuma criatura, nenhuma silhueta de criatura nem criatura original que rime com uma, nenhum treinador, item, nome de lugar, música, efeito sonoro, tile, sprite, paleta ou layout de tela tirado, decalcado ou redesenhado de qualquer jogo de Pokémon.37
  2. Nenhum vocabulário da franquia como nome de recurso: Pokédex, Poké Ball, Poké-qualquer-coisa, Trainer Card, Gym, Badge, Elite Four, Hall of Fame, Safari Zone, Repel, Secret Base, Record Mixing, Easy Chat, Trendy Saying, Contest, PokéNav, Pokégear, Match Call, VS Seeker, Battle Tower, Frontier. Não conferi quais desses são marcas registradas; juntos, eles marcariam um produto como derivado, e as próprias descrições de loja dos jogos tributo dispensam até o nome da série.31
  3. Nenhum dos passos reivindicados de captura, combate ou montaria: nada mirado e arremessado para capturar o que quer que seja; nenhum indicador de chance de captura; nenhum companheiro solto para lutar; nenhuma montaria voadora ou de planeio; nenhum ajudante invocado que batalhe em dois modos.11121361
  4. Nenhum código ou dado das descompilações no app ou na forja. Elas servem para estudar e medir; o código e os assets delas derivam dos jogos.
  5. Nada de “Pokémon” no marketing além da única linha de descrição nominativa que as próprias regras do app permitem: o nome na App Store, o subtítulo, o ícone, as capturas de tela, os anúncios e os trailers ficam limpos.3731
  6. Nenhum financiamento coletivo ou pitch para a imprensa apoiado na nostalgia de Pokémon. Imprensa e depois financiamento é o gatilho que o ex-diretor jurídico da The Pokémon Company descreveu.67
  7. Nenhuma cara de jogo de azar, e nenhuma sorte nos cosméticos: nada de caça-níqueis, nada de Game Corner, nada de sorteios, nada de itens aleatórios, pagos ou grátis.3336
  8. Nenhuma ideia ou obra de fã enviada à The Pokémon Company ou à Nintendo, e nenhum uso dos seus canais de fãs ou de ideias: as regras delas licenciam esse trabalho de volta para elas e dizem que não aceitam ideias não solicitadas.60
  9. Nenhuma imagem de carta além da identificação: nunca empacotada, nunca na arte de marketing, nunca em produtos licenciados.37
  10. Nenhum dado de saúde ou de movimento para recompensas do jogo (seção 13).

Fora deste briefing

As fichas e o Game Corner (recusados acima); o sorteio diário (uma versão comparada com os números de coleção das cartas escaneadas foi rascunhada e descartada, porque o prêmio é aleatório); as ligações telefônicas e a TV (as falas prontas da praça já falam, e um mundo que liga para o celular de uma criança não é um que eu queira construir); os surtos e os enxames (não há criaturas para formar enxames); as caixas do PC (como uma coleção se arruma numa página é assunto do post sobre quartos); bicicletas e árvores cortáveis (elas são das rotas); os tetos de Base Secreta (o post sobre quartos cuida dos tetos dos quartos); e qualquer coisa do Pokéathlon.

Os limites honestos

Quatro patentes lidas, três japonesas e uma americana, do Google Patents, com as reivindicações japonesas em tradução automática; nenhuma busca de patentes sobre contadores de passos, relógios ou frases que se espalham; nenhum advogado consultado. O caso Palworld ainda estava aberto em 4 de outubro de 2026: havia uma sessão técnica agendada para 1º de outubro e nenhum resultado foi relatado, e as opiniões preliminares do tribunal estão agendadas para 9 de novembro. O próximo passo do reexame americano não foi relatado. A página jurídica americana da The Pokémon Company estava inacessível. Cada item acima é uma mecânica que acredito ser livre para usar como expressão nossa, e cada uma dessas crenças é uma leitura.297980

Principais lições

Se você desenha a arte

  • Desenhe cada pixel você mesmo, com a sua própria paleta e as suas próprias regras. Todo projeto de fã do histórico que provocou ação usava os próprios nomes, arte ou código dos jogos, ou linkava para jogos que usavam.5678
  • A aparência de uma mecânica é expressão mesmo quando a mecânica não é: um ressalto pode ser um meio-fio de pedra, uma estrela pode ser a sua própria estrela, as cores de um cartão podem ser a sua própria sequência. Nomeie aquilo com que cada elemento não pode se parecer antes de desenhá-lo.
  • Mantenha o vocabulário seu. Trainer Card, Safari Zone, Secret Base e o resto marcam um produto como derivado; as próprias descrições de loja dos jogos tributo dispensam até o nome da série.31

Se você constrói o motor

  • Conte passos no mundo, não na pessoa: um movimento de um tile validado pelo servidor, nunca Core Motion ou HealthKit para uma decoração.8684
  • Calcule o dia na chegada a partir de uma chave de dia (startOfDay(for:), isDate(_:inSameDayAs:)), rearme com NSCalendarDayChanged e não deixe nada rodando em segundo plano; isso é o UpdatePerDay de Emerald em Swift.87888922
  • Rode tudo o que é compartilhado pelo relógio do servidor e tudo o que é privado e cosmético pelo do celular.
  • Nunca publique código ou dados de uma descompilação; leia, meça, cite.

Se você projeta o loop

  • Pague a caminhada num ritmo grosso (de 128 a 512 passos), gaste orçamentos em passos e não em segundos, e faça uma ausência custar pouco: as berries maduras de Emerald esperam quatro durações de estágio antes de cair, e só uma ausência muito longa apaga a árvore.1214153
  • Dê à semana dias com nome, com no máximo um compromisso cada, e mantenha uma sala segura onde nada muda.192122
  • Quatro estrelas, quatro tipos diferentes de jogo, nenhuma à venda; conte participações, não sequências ininterruptas, quando os seus jogadores são crianças; e nenhum cosmético por sorte ou contra o relógio.2336
  • Deixe os mundos dos outros chegarem ao seu: um ditado com uma pontuação, uma deriva e uma regra de contato viaja quando os jogadores se encontram, sem nada a anunciar.426
  • Leia passo a passo as reivindicações de patente do seu gênero, anote quais passos o seu design executa (mover um personagem por entrada é um deles aqui) e deixe de fora os passos que fazem de cada reivindicação o que ela é; depois diga com clareza quais patentes você leu. Essa é a minha leitura, não aconselhamento jurídico.11121361

Perguntas frequentes

Dá para fazer um jogo inspirado em Pokémon sem ser processado?

Ninguém pode prometer isso, e isto não é aconselhamento jurídico. O histórico, porém, é consistente: os projetos de fã deste histórico que receberam notificações de remoção entre 2016 e 2024 usavam os próprios nomes, arte ou código de Pokémon, ou linkavam para jogos que usavam, e o único caso disputado por mecânicas, o Palworld, se apoia em patentes cujas reivindicações exigem passos específicos, como mirar e arremessar um item de captura.567810 O direito autoral não protege sistemas nem métodos de operação, mas a marca protege os nomes, e uma patente pode reivindicar um método de jogo.4411 Jogos tributo como Coromon, Temtem e Cassette Beasts trazem o gênero com arte própria, e as descrições curta e longa das suas páginas no Steam, os campos escritos pelos desenvolvedores que contei, nunca usam o nome; a página do Temtem o traz uma vez, numa citação de imprensa.31

O Pokémon Uranium recebeu uma notificação de cessação e desistência?

Não, segundo os seus desenvolvedores. O comunicado deles, relatado pelo Kotaku em 13 de agosto de 2016, diz que eles tinham “been notified of multiple takedown notices from lawyers representing Nintendo of America” (sido notificados de várias notificações de remoção de advogados que representam a Nintendo of America) depois de mais de 1.500.000 downloads, e que “we have not personally been contacted” (não fomos contatados pessoalmente); eles mesmos removeram os links de download.5 O Pokémon Prism recebeu uma, em 21 de dezembro de 2016, quatro dias antes do lançamento planejado.665

Por quais patentes a Nintendo e a The Pokémon Company estão processando o Palworld?

Três patentes japonesas, nomeadas no relatório da Pocketpair de 8 de novembro de 2024: a nº 7545191 (mirar e arremessar um item de captura, ou um personagem de combate, a partir de uma postura preparada, com o item ou o personagem escolhido num segundo botão), a nº 7493117 (um indicador da probabilidade de uma captura dar certo) e a nº 7528390 (montar personagens que se possui, incluindo subir num voador em pleno ar). As três foram depositadas em 2024, depois do lançamento do Palworld, como divisionais cuja prioridade remonta a pedidos depositados em 22 de dezembro de 2021.1072111213 Uma patente americana, a 12,403,397, sobre um personagem secundário invocado que batalha em dois modos, está em reexame, e nenhum processo nos EUA contra a Pocketpair foi relatado.6179

O processo contra o Palworld acabou?

Não até 4 de outubro de 2026. O Automaton relatou em junho de 2026, a partir de autos do Tribunal Distrital de Tóquio, que as autoras restringiram os seus pedidos em novembro de 2025 a versões antigas do Palworld, ainda pedindo uma medida inibitória, com uma sessão técnica agendada para 1º de outubro de 2026 e as opiniões preliminares do tribunal para 9 de novembro de 2026. Nenhuma sentença, acordo ou medida inibitória foi relatada, e a Pocketpair não publicou nada sobre o processo desde 8 de maio de 2025.2930

A Nintendo permite jogos de fã?

Não encontrei nenhuma diretriz publicada da Nintendo ou da Pokémon que cubra jogos de fã. As Game Content Guidelines da Nintendo cobrem gameplay e capturas de tela e dizem que qualquer outro uso da sua propriedade intelectual “is subject to the relevant laws of the applicable jurisdiction” (está sujeito às leis pertinentes da jurisdição aplicável); as regras do site japonês da The Pokémon Company licenciam obras derivadas de volta para a empresa e não licenciam nada além do uso pessoal para quem as faz.8160 Na minha leitura, não há porto seguro, só discricionariedade na aplicação; o ex-diretor jurídico da empresa disse que o gatilho é a imprensa e depois o financiamento.67

Como funcionava o contador de passos nos jogos antigos de Pokémon?

Cada passo pelo mundo do jogo passa por uma única rotina. Em Gold, Silver e Crystal, ela aproxima os ovos do grupo da eclosão a cada 256 passos, aumenta a felicidade do grupo a cada 512 (a sua rotina de felicidade é chamada a cada 256 passos e age uma chamada sim e outra não), causa dano a um Pokémon envenenado a cada 4 e faz o dono da loja de bicicletas ligar depois de 1.024 passos de bicicleta; em Emerald, a cada 128 passos cada Pokémon do grupo tem 50 por cento de chance de ganhar amizade, e os ovos perdem um ciclo a cada 256, na ordem do grupo até o primeiro ovo pronto para chocar. A Zona Safari (500 passos) e os Repels (100, 200 e 250) são orçamentos gastos andando.121415411617

O que o relógio em tempo real de Gold e Silver mudou?

O dia tem três partes, manhã a partir das 4:00, dia a partir das 10:00 e noite a partir das 18:00; o Concurso de Captura de Insetos acontece na terça, na quinta e no sábado por 20 minutos; o sorteio do Número da Sorte é semanal, às sextas; 24 treinadores podem ser chamados para revanche, cada um num período de um dia da semana; e 16 flags diárias são zeradas à meia-noite.1819214620 Emerald acrescentou um calendário por cima: berries que levam de 4 a 96 horas para dar fruto, e uma frase da moda que deriva 5 pontos por dia.34

Relacionados neste site: Mundos em pixel art no iPhone é o primeiro guia desta série, com os sistemas de tiles, a paleta e a receita de RealityKit com que a cidade é desenhada, e o seu FAQ jurídico é a versão curta das seções 7 a 10 daqui; Estruturas em pixel art construiu as casas da cidade, o salão e os quartos onde a planta ficaria, e lista o ressalto de mão única entre o que a cidade ainda não tem; Pessoas em pixel art é o colecionador que andaria os 256 passos, com as regras sobre cosméticos e crianças em que se apoia a troca de uma sequência no item 3.

Fontes


  1. pret, pokecrystal/engine/overworld/events.asm no commit 5beda23 (CountStep a partir da linha 877: DoRepelStep, wStepCount, os comentários “Every 256 steps, increase the happiness of all your Pokemon”, “Every 256 steps, offset from the happiness incrementor by 128 steps” com cp $80, “Every 4 steps, deal damage to all poisoned Pokemon”; o passo de experiência do Day-Care; DoBikeStep a partir da linha 1279 com cp HIGH(1024) e o teto de 65.535), https://github.com/pret/pokecrystal/blob/master/engine/overworld/events.asm. Constantes e linhas impressas por measure_systems.py na pasta de evidências do autor para este post (saída measure_systems.out.txt), executado em 4 de outubro de 2026; as descrições de comportamento são a leitura do código feita pelo autor. ↩↩↩↩↩↩↩↩↩↩↩

  2. pret, pokecrystal/engine/events/happiness_egg.asm no commit 5beda23 (StepHappiness na linha 107; o seu comentário “Raise the party’s happiness by 1 point every other step cycle” na linha 108; ld hl, wHappinessStepCount, inc a, and 1, ld [hl], a, ret nz nas linhas 110 a 115; ovos pulados com cp EGG), https://github.com/pret/pokecrystal/blob/master/engine/events/happiness_egg.asm, chamada por CountStep em engine/overworld/events.asm cada vez que o wStepCount de um byte dá a volta. Linhas impressas por measure_systems.py, saída measure_systems.out.txt, executado de novo em 4 de outubro de 2026; que a felicidade sobe a cada 512 passos é a leitura do autor sobre a alternância. ↩↩↩↩↩↩↩↩

  3. pret, pokeemerald/src/berry.c no commit 731ad5b (BerryTreeTimeUpdate, o teste de remoção * 71 na linha 1089, minutesUntilNextStage *= 4 nas linhas 1109 e 1127, o reinício após 10 rebrotas na linha 1071, GetStageDurationByBerryType retornando stageDuration * 60 na linha 1252, CalcBerryYieldInternal; BerryTreeGrow nas linhas 1064 a 1072, onde o fim do estágio com berries define berryYield = 0 e volta o estágio para BERRY_STAGE_SPROUTED; os valores de stageDuration das 43 berries) e pokeemerald/src/clock.c (UpdatePerMinute), https://github.com/pret/pokeemerald/blob/master/src/berry.c. As contagens por duração de estágio (1 hora: 5, 3: 12, 4: 1, 6: 11, 12: 1, 18: 5, 24: 8) e as horas até as primeiras berries são derivadas por measure_systems.py, saída measure_systems.out.txt, 4 de outubro de 2026. ↩↩↩↩↩↩↩↩↩↩↩

  4. pret, pokeemerald/src/dewford_trend.c no commit 731ad5b (o comentário de cabeçalho do arquivo: a popularidade “Initialized as a random value between 30-127 inclusive”, as regras de aceitação e de “boring”, SAVED_TRENDS_COUNT (5), a regra da mistura de registros; UpdateDewfordTrendPerDay com clockRand = days * 5 na linha 96; SeedTrendRng, linhas 369 a 383, que sorteia Random() % 98 e soma 30; TrySetTrendyPhrase a partir da linha 151, cujo ramo de primeiro envio nas linhas 158 a 169 define as palavras sem comparação quando o save nunca mudou a moda nem misturou registros, e cuja comparação na linha 181 usa CompareTrends em SORT_MODE_NORMAL, linhas 332 a 337 e 366: popularidade, depois popularidade máxima, depois Random() & 1 num empate total), https://github.com/pret/pokeemerald/blob/master/src/dewford_trend.c, e include/global.h no mesmo commit (trendiness:7 e maxTrendiness:7 nas linhas 643 e 644, então a pontuação não pode passar de 127). Linhas impressas por measure_systems.py. ↩↩↩↩↩↩↩↩↩↩↩

  5. Jason Schreier, “Pokémon Uranium Creators Pull Game After A Reported 1.5 Million Downloads”, Kotaku, 13 de agosto de 2016 (a data da página; 20:34 no horário do Leste dos EUA, que é 14 de agosto em UTC), com o comunicado completo dos desenvolvedores, acessado em 4 de outubro de 2026, https://kotaku.com/pokemon-uranium-creators-pull-game-after-1-5-million-do-1785258831. ↩↩↩↩↩↩↩↩

  6. Heather Alexandra, “Pirates Leak Pokémon Prism After Nintendo Shuts It Down”, Kotaku, 29 de dezembro de 2016 (a notificação de cessação e desistência de 21 de dezembro, o lançamento planejado para o Natal, Pokémon Brown e Rijon Adventures tirados do ar), acessado em 4 de outubro de 2026, https://kotaku.com/pirates-leak-pokemon-prism-after-nintendo-shuts-it-down-1790598623. ↩↩↩↩↩↩↩

  7. Cohen Coberly, “Nintendo slaps fan game creation tool ‘Pokemon Essentials’ with DMCA takedown”, TechSpot, 29 de agosto de 2018, a partir do Ars Technica (o acatamento do Fandom, os downloads do PokéCommunity removidos, a citação sobre os assets), acessado em 4 de outubro de 2026, https://www.techspot.com/news/76202-nintendo-slaps-fan-game-creation-tool-pokemon-essentials.html. ↩↩↩↩↩

  8. Catherine Lewis, GamesRadar+, “After almost 10 years, unofficial Pokemon website known for sharing fan-made games shuts down after reportedly receiving a DMCA takedown notice”, 22 de março de 2024 (o comunicado do Relic Castle; links em vez de hospedagem; o remetente não confirmado), acessado em 4 de outubro de 2026, https://www.gamesradar.com/after-almost-10-years-unofficial-pokemon-website-known-for-sharing-fan-made-games-shuts-down-after-reportedly-receiving-a-dmca-takedown-notice/. ↩↩↩↩↩↩

  9. Nintendo Co., Ltd. e The Pokémon Company, “Filing Lawsuit for Infringement of Patent Rights against Pocketpair, Inc.”, comunicado conjunto à imprensa, 19 de setembro de 2024 (aberto no Tribunal Distrital de Tóquio em 18 de setembro de 2024; medida inibitória e indenização), acessado em 4 de outubro de 2026, https://www.nintendo.co.jp/corporate/release/en/2024/240919.html. ↩↩

  10. Pocketpair, “Report on Patent Infringement Lawsuit”, aviso importante, 8 de novembro de 2024 (o lançamento do Palworld em 19 de janeiro de 2024; as patentes nº 7545191, 7493117 e 7528390 com datas de depósito e de registro; a medida inibitória e 5 milhões de ienes mais juros de mora para cada autora), acessado em 4 de outubro de 2026, https://www.pocketpair.jp/en/news/report-on-patent-infringement-lawsuit/. ↩↩↩↩↩↩

  11. Google Patents, JP7493117B2, “Game program, game system, game device, and game processing method” (titulares Nintendo Co., Ltd. e The Pokémon Company; pedido datado de 26 de fevereiro de 2024; a tabela de prioridade dá uma data de prioridade de 22 de dezembro de 2021, a tabela de pedidos que reivindicam prioridade lista JP2021208275A, depositado naquele dia, como JP7398425B2, e a lista de publicações dá JP7398425B2 como publicado em 14 de dezembro de 2023), reivindicação 1 na tradução automática do Google a partir do japonês, salva em 4 de outubro de 2026 e extraída por measure_patent_claims.py (saída measure_patent_claims.out.txt) na pasta de evidências do autor para este post, https://patents.google.com/patent/JP7493117B2/en. Vale o texto japonês. ↩↩↩↩↩↩↩↩↩↩

  12. Google Patents, JP7545191B1, “Game program, game system, game device, and game processing method” (titulares Nintendo Co., Ltd. e The Pokémon Company; pedido datado de 30 de julho de 2024; data de prioridade 22 de dezembro de 2021, por meio do seu pedido-mãe JP2024031879A, uma divisão da mesma família que JP2021208275A, depositado em 22 de dezembro de 2021 e publicado como JP7398425B2 em 14 de dezembro de 2023), reivindicação 1 na tradução automática do Google, salva em 4 de outubro de 2026 e extraída por measure_patent_claims.py, https://patents.google.com/patent/JP7545191B1/en. Vale o texto japonês. ↩↩↩↩↩↩↩↩

  13. Google Patents, JP7528390B2, “Game program, game system, information processing device, and information processing method” (titulares Nintendo Co., Ltd. e The Pokémon Company; pedido datado de 5 de março de 2024; data de prioridade 22 de dezembro de 2021, na família de JP2021208276A, depositado naquele dia e publicado como JP7349486B2 em 22 de setembro de 2023), reivindicação 1 na tradução automática do Google, salva em 4 de outubro de 2026 e extraída por measure_patent_claims.py, https://patents.google.com/patent/JP7528390B2/en. Vale o texto japonês. ↩↩↩↩↩↩↩↩

  14. pret, pokeemerald/src/field_control_avatar.c no commit 731ad5b (TryStartStepCountScript, linhas 543 a 604, incluindo ShouldDoBrailleRegicePuzzle na linha 565 com IslandCave_EventScript_OpenRegiEntrance e as cinco verificações ShouldDo...Call nas linhas 570 a 590; (*ptr) %= 128 na linha 620 para a amizade; (*ptr) %= 4 na linha 645 para o veneno, pulado nas Bases Secretas), https://github.com/pret/pokeemerald/blob/master/src/field_control_avatar.c. Linhas impressas por measure_systems.py. ↩↩↩↩↩↩↩↩

  15. pret, pokeemerald/src/pokemon.c no commit 731ad5b (AdjustFriendship a partir da linha 5914; ovos excluídos por species != SPECIES_EGG; para FRIENDSHIP_EVENT_WALKING, o comentário “50% chance every 128 steps” e if (Random() & 1) return; nas linhas 5950 a 5952; o modificador de caminhada { 1, 1, 1} na linha 2100), https://github.com/pret/pokeemerald/blob/master/src/pokemon.c, e src/field_control_avatar.c (UpdateFriendshipStepCounter, que chama AdjustFriendship(mon, FRIENDSHIP_EVENT_WALKING) para cada um dos espaços do grupo nas linhas 624 a 626). Linhas impressas por measure_systems.py, executado de novo em 4 de outubro de 2026; a média de uma vez a cada 256 passos é derivada do sorteio de 50 por cento numa batida de 128 passos. ↩↩↩↩↩↩

  16. pret, pokered/scripts/SafariZoneGate.asm no commit d2704a6 (30 balls na linha 186, HIGH(502)/LOW(502) nas linhas 188 e 190, o texto de ¥500 na linha 214, depois ld a, PAD_UP, ld c, 3 e call SafariZoneEntranceAutoWalk nas linhas 192 a 194 e SetEvent EVENT_IN_SAFARI_ZONE na linha 195; a contagem de passos em si é decrementada em engine/events/hidden_events/safari_game.asm, não emulado aqui), https://github.com/pret/pokered/blob/master/scripts/SafariZoneGate.asm, e pokeemerald/src/safari_zone.c em 731ad5b (sSafariZoneStepCounter = 500 na linha 61), https://github.com/pret/pokeemerald/blob/master/src/safari_zone.c. Linhas impressas por measure_systems.py. ↩↩↩↩↩

  17. pret, pokered/engine/items/item_effects.asm em d2704a6 (ItemUseRepel ld b, 100, ItemUseSuperRepel ld b, 200, ItemUseMaxRepel ld b, 250), https://github.com/pret/pokered/blob/master/engine/items/item_effects.asm, e pokeemerald/src/data/items.h em 731ad5b (holdEffectParam 100, 200, 250), https://github.com/pret/pokeemerald/blob/master/src/data/items.h. Linhas impressas por measure_systems.py. ↩↩↩↩↩

  18. pret, pokecrystal/constants/misc_constants.asm em 5beda23 (MORN_HOUR 4, DAY_HOUR 10, NITE_HOUR 18, linhas 36 a 38) e pokecrystal/engine/rtc/rtc.asm (a tabela TimesOfDay e o seu comentário na linha 50; a BetaTimesOfDay sem uso), https://github.com/pret/pokecrystal/blob/master/constants/misc_constants.asm e https://github.com/pret/pokecrystal/blob/master/engine/rtc/rtc.asm. Linhas impressas por measure_systems.py. ↩↩↩↩

  19. pret, pokecrystal/maps/Route35NationalParkGate.asm em 5beda23 (as verificações de dia da semana para terça, quinta e sábado, linhas 38 a 40) e pokecrystal/constants/script_constants.asm (BUG_CONTEST_BALLS 20, BUG_CONTEST_MINUTES 20, linhas 293 e 294), https://github.com/pret/pokecrystal/blob/master/maps/Route35NationalParkGate.asm. Linhas impressas por measure_systems.py. ↩↩↩↩↩↩↩

  20. pret, pokecrystal/constants/engine_flags.asm em 5beda23 (wDailyFlags1 e wDailyFlags2, 8 flags cada), https://github.com/pret/pokecrystal/blob/master/constants/engine_flags.asm. Contadas por measure_systems.py. ↩↩↩↩

  21. pret, pokecrystal/engine/overworld/time.asm em 5beda23 (.GetDaysUntilNextFriday, linha 241) e pokecrystal/engine/events/lucky_number.asm (a comparação com o ID de cada Pokémon que se tem e as três faixas de prêmio), https://github.com/pret/pokecrystal/blob/master/engine/events/lucky_number.asm. Linhas impressas por measure_systems.py; as faixas são a leitura da rotina feita pelo autor. ↩↩↩↩↩↩↩↩

  22. pret, pokeemerald/src/clock.c em 731ad5b (UpdatePerDay, que lê o número de dia guardado VAR_DAYS na linha 38, o compara com o de hoje na linha 41, calcula daysSince na linha 43, faz onze chamadas com ele nas linhas 44 a 54 e grava o dia de hoje na linha 55; duas delas UpdateFrontierManiac e UpdateFrontierGambler, e a guarda !InPokemonCenter() na linha 28 antes das atualizações por dia e por minuto), https://github.com/pret/pokeemerald/blob/master/src/clock.c. Linhas impressas por measure_systems.py. ↩↩↩↩↩↩↩↩↩↩

  23. pret, pokeemerald/src/trainer_card.c em 731ad5b (as paletas de cartão de Hoenn e de Kanto por número de estrelas, linhas 267 a 280; CountPlayerTrainerStars, linhas 663 a 677; GetRubyTrainerStars, linhas 679 a 692, para um cartão de Ruby ou Sapphire: o tempo de estreia no Hall da Fama, caughtAllHoenn, battleTowerStraightWins > 49 na linha 687 e hasAllPaintings; os tetos de 9.999 e 999 nas linhas 711 a 743), https://github.com/pret/pokeemerald/blob/master/src/trainer_card.c. Linhas impressas por measure_systems.py; Ruby e Sapphire não estão entre os clones, então a regra deles é lida deste código que interpreta os seus cartões. ↩↩↩↩↩↩↩↩↩

  24. pret, pokered/constants/pokemon_data_constants.asm (MONS_PER_BOX 20, NUM_BOXES 12), pokecrystal/constants/pokemon_data_constants.asm (MONS_PER_BOX 20, MONS_PER_BOX_JP 30, NUM_BOXES 14) e pokeemerald/include/pokemon_storage_system.h (TOTAL_BOXES_COUNT 14, IN_BOX_ROWS 5, IN_BOX_COLUMNS 6, nomes e papéis de parede das caixas), https://github.com/pret/pokeemerald/blob/master/include/pokemon_storage_system.h. Linhas impressas por measure_systems.py. ↩↩↩

  25. pret, pokeemerald/include/constants/battle_frontier.h em 731ad5b (MAX_STREAK 9999, FRONTIER_STAGES_PER_CHALLENGE 7) e pokeemerald/src/frontier_util.c (a tabela de sequências do Frontier Brain, linhas 88 a 94, cuja quarta coluna é o modificador; GetFrontierBrainStatus, linhas 1656 a 1693, com winStreakNoModifier + sFrontierBrainStreakAppearances[facility][3] na linha 1662 e a comparação na linha 1674; IncrementWinStreak a partir da linha 2111). O que cada sequência conta é lido dos scripts das instalações no mesmo commit: as salas de batalha da Tower, do Palace, da Arena e da Factory chamam BattleFrontier_EventScript_IncrementWinStreak depois de cada oponente derrotado e encerram o desafio quando a contagem de batalhas chega a 7 (case 7 no scripts.inc de cada sala: Tower linha 51, Palace linha 70, Arena linha 107, Factory linha 104); a Pyramid o chama em BattlePyramid_WarpToNextFloor (data/maps/BattleFrontier_BattlePyramidFloor/scripts.inc, linha 88), que manda o jogador para o topo depois do andar 7 (linha 93); o Dome o chama uma vez por torneio vencido, em BattleFrontier_BattleDomeLobby_EventScript_WonChallenge (data/maps/BattleFrontier_BattleDomeLobby/scripts.inc, linhas 44 e 45), e IncrementWinStreak (src/frontier_util.c, linhas 2130 a 2134) aumenta tanto domeWinStreaks quanto domeTotalChampionships; um torneio são DOME_ROUNDS_COUNT 4 rodadas (include/constants/battle_dome.h, linha 8). (IncrementDomeStreaks em src/battle_dome.c faria o mesmo, mas a sua macro, dome_incrementstreaks, não é usada em nenhum lugar de data/.) include/constants/battle_pike.h define NUM_PIKE_ROOMS 14 na linha 4 e lista nove tipos de sala, entre eles cura total e parcial, uma sala de status e uma sala com um personagem não jogável, e src/battle_pike.c divide a sequência do Pike por NUM_PIKE_ROOMS na linha 1401, https://github.com/pret/pokeemerald/blob/master/src/frontier_util.c. Linhas impressas por measure_systems.py. ↩↩↩↩↩↩

  26. pret, pokeemerald/src/record_mixing.c em 731ad5b (o layout do registro misturado, linhas 67 a 78, terminando no deslocamento 0x1434 mais 16 bytes de preenchimento, 0x1444 bytes no total), https://github.com/pret/pokeemerald/blob/master/src/record_mixing.c. Linhas impressas por measure_systems.py. ↩↩↩↩↩↩

  27. pret, pokeemerald/include/constants/tv.h em 731ad5b (POKENEWS_COUNTDOWN 4, NUM_NORMAL_TVSHOW_SLOTS 5, TV_SHOWS_COUNT de 5 mais 20; os tipos de programa, contados por measure_systems.py como 11 normais, 19 só por mistura de registros e 1 de surto; NUM_CUTIES_RIBBONS 4 na linha 84, a constante com que comparam os chamadores de Spot the Cuties), https://github.com/pret/pokeemerald/blob/master/include/constants/tv.h. ↩↩↩↩↩

  28. pret, pokeemerald/src/easy_chat.c em 731ad5b (o comentário sobre as Trendy Sayings nas linhas 5429 a 5436), pokeemerald/include/constants/easy_chat.h (NUM_TRENDY_SAYINGS 33), pokeemerald/src/mauville_old_man.c ((trainerId % 10) / 2, linha 120) e pokeemerald/include/constants/mauville_old_man.h (os cinco tipos), https://github.com/pret/pokeemerald/blob/master/src/easy_chat.c e https://github.com/pret/pokeemerald/blob/master/src/mauville_old_man.c. Linhas impressas por measure_systems.py. ↩↩↩↩↩↩↩

  29. Automaton West, “Nintendo and The Pokémon Company have reportedly narrowed Palworld lawsuit to older versions of the game only, likely thanks to ‘preventive’ updates by Pocketpair”, 12 de junho de 2026 (autos do Tribunal Distrital de Tóquio revisados pela equipe japonesa do Automaton, e Games Fray; a alteração de novembro de 2025; a medida inibitória ainda pedida; as datas de 1º de outubro e 9 de novembro de 2026; o lançamento anunciado para 10 de julho), acessado em 4 de outubro de 2026, https://automaton-media.com/en/news/nintendo-and-the-pokemon-company-have-reportedly-narrowed-palworld-lawsuit-to-older-versions-of-the-game-only-likely-thanks-to-preventive-updates-by-pocketpair/. ↩↩↩↩↩↩

  30. Pocketpair, lista de avisos importantes, acessada em 4 de outubro de 2026 (o aviso mais recente, de 12 de janeiro de 2026, sobre um jogo de cartas; o mais recente sobre o processo, de 8 de maio de 2025), https://www.pocketpair.jp/en/news/category/important-en/. A ausência de um relato é o que o autor conseguiu encontrar, não uma prova. ↩↩↩

  31. Contagem do autor, 4 de outubro de 2026: figures/steam_names.py ao lado do rascunho, sobre as sete fichas de detalhes de app do Steam salvas na pasta de evidências do autor para este post (steam_*.html; Coromon 1218210, Nexomon: Extinction 1196630, Cassette Beasts 1321440, Temtem 745920, Monster Sanctuary 814370, Moonstone Island 1658150, Palworld 1623730), contando “Pokémon” ou “Pokemon” campo por campo: zero em todas as descrições curtas e longas; uma no campo reviews do Temtem, uma citação da Rock Paper Shotgun. Saída figures/steam_names.out.txt. ↩↩↩↩↩↩↩

  32. Nintendo Life, “’The Single Best Game Concept Ever’ - Pokémon-Inspired Devs Talk The Series That Started It All”, 2 de março de 2026 (Andrades, JVemon, Pouwels, Spink, Coxon), acessado em 4 de outubro de 2026, https://www.nintendolife.com/features/the-single-best-game-concept-ever-pokemon-inspired-devs-talk-the-series-that-started-it-all. ↩↩

  33. Dossiê de pesquisa do autor, “Homage without borrowing”, 4 de outubro de 2026, docs/research/homage/01-homage.md no repositório do Kiradex: o briefing de onde sai a seção 14 deste post, a recusa dos ressaltos na pesquisa de estruturas (a sua seção 8.8), as linhas da pesquisa de colecionismo sobre itens aleatórios pagos e caça-níqueis, e o design do servidor da praça que só cuida de presença. Repositório privado. ↩↩↩↩↩↩↩↩↩↩↩

  34. Blake Crosley, “Pixel-Art Worlds on iPhone: What the 16-Bit Masters Knew”, blakecrosley.com, 3 de outubro de 2026, atualizado em 4 de outubro de 2026 (as 58 cores da forja em catorze rampas; o FAQ jurídico, corrigido em 4 de outubro para nomear o direito autoral e acrescentar as patentes do Palworld), https://blakecrosley.com/blog/pixel-art-world-on-iphone. ↩↩↩↩↩

  35. Blake Crosley, “Pixel-Art Structures: Houses, Halls and Interiors on iPhone”, blakecrosley.com, 3 de outubro de 2026 (os quartos, o salão, e “a one-way ledge” entre o que a cidade não tem), https://blakecrosley.com/blog/pixel-art-structures-on-iphone. ↩↩↩↩

  36. Blake Crosley, “Pixel-Art People: Characters and a Creator on iPhone”, blakecrosley.com, 3 de outubro de 2026 (as classificações do PEGI para itens aleatórios pagos e sequências de login que expiram desde junho de 2026; a regra de que todo cosmético é “purely visual, never random, never on a countdown”), https://blakecrosley.com/blog/pixel-art-characters-on-iphone. ↩↩↩↩↩↩↩↩

  37. App do autor, repositório do Kiradex no commit b1b78b1 (4 de outubro de 2026), docs/WORLD.md seção 1, “Can this exist without being sued” (as regras do Kiradex World, a linha de descrição nominativa, as imagens de carta só para identificação, e a redação anterior sobre Uranium que este post corrige), seção 2 (o design feito para coletar o mínimo possível, linhas 146 a 149) e o parágrafo sobre dados da seção 3 (o servidor identificado pelo ID de jogador do Game Center, um identificador persistente que a COPPA considera informação pessoal quando combinado com outros dados, uma política de privacidade, nada de analytics ou anúncios de terceiros, exclusão a pedido, linhas 199 a 206). Repositório privado. ↩↩↩↩↩↩↩↩

  38. Medição do autor, 4 de outubro de 2026, ampliada em 5 de outubro de 2026 para imprimir cada linha que as notas citam: measure_systems.py na pasta de evidências do autor para este post, executado sobre clones rasos de pokered (d2704a6), pokecrystal (5beda23), pokeemerald (731ad5b) e pokefirered (037335f) do pret, commits do branch master datados de 22 de setembro, 29 de setembro, 1º de outubro e 26 de setembro de 2026, respectivamente (git show -s em cada clone); imprime cada constante com o seu arquivo e a sua linha e deriva as contagens, saída measure_systems.out.txt. Os READMEs dos repositórios listam o SHA-1 de cada ROM que constroem, por exemplo https://github.com/pret/pokeemerald/blob/master/README.md. ↩↩

  39. Medição do autor, 4 de outubro de 2026: measure_map_features.py na pasta de evidências do autor para este post, sobre cada data/maps/*/map.json do pokeemerald do pret em 731ad5b, resolvendo o map.bin de cada layout único contra os seus metatile_attributes.bin primário e secundário (ressaltos MB_JUMP_*; só Mach Bike MB_MUDDY_SLOPE e MB_CRACKED_FLOOR; só Acro Bike os trilhos e MB_BUMPY_SLOPE; MB_TALL_GRASS) e contando os objetos OBJ_EVENT_GFX_CUTTABLE_TREE em todos os mapas; executado de novo para este post, saída salva como figures/measure_map_features.out.txt ao lado do rascunho. Células, não elementos; layouts compartilhados contados uma vez. ↩↩↩↩↩↩↩↩↩

  40. pret, pokecrystal/engine/overworld/events.asm no commit 5beda23 (as linhas de comentário “decrease the hatch counter of all your eggs until you reach the first” e “one that is ready to hatch” nas linhas 892 e 893; farcall DoEggStep e jr nz, .hatch nas linhas 898 e 899; .hatch carrega PLAYEREVENT_HATCH na linha 928, que roda HatchEggScript, o rótulo na linha 999 com o seu callasm OverworldHatchEgg na linha 1000) e pokecrystal/engine/pokemon/breeding.asm no mesmo commit (DoEggStep a partir da linha 174: percorre wPartySpecies em ordem, pula tudo o que não é EGG e, num ovo, roda dec [hl] na linha 185 e retorna com resultado diferente de zero na linha 189 quando o contador chega a 0), https://github.com/pret/pokecrystal/blob/master/engine/pokemon/breeding.asm. Que os ovos seguintes esperam a próxima batida é a leitura do autor sobre o retorno antecipado. ↩

  41. pret, pokeemerald/src/daycare.c em 731ad5b ((daycare->mons[1].steps & 0xFF) == 0xFF na linha 890; ++daycare->stepCounter == 255 na linha 898; GetEggCyclesToSubtract; o loop do grupo a partir da linha 903, que pula MON_DATA_SANITY_IS_BAD_EGG na linha 907, subtrai só quando eggCycles != 0 na linha 911 e, caso contrário, define gSpecialVar_0x8004 = i na linha 922 e retorna na linha 923, então o loop termina nesse ovo; ShouldEggHatch então inicia EventScript_EggHatch em src/field_control_avatar.c nas linhas 554 a 557), https://github.com/pret/pokeemerald/blob/master/src/daycare.c. Linhas impressas por measure_systems.py. ↩↩↩

  42. pret, pokeemerald/src/battle_setup.c em 731ad5b (STEP_COUNTER_MAX 255 na linha 1792, HasAtLeastFiveBadges() na linha 1796), https://github.com/pret/pokeemerald/blob/master/src/battle_setup.c, e pokefirered/src/vs_seeker.c em 037335f (vsSeekerChargeSteps == 100 na linha 855), https://github.com/pret/pokefirered/blob/master/src/vs_seeker.c. Linhas impressas por measure_systems.py. ↩↩

  43. Figuras do autor, desenhadas em 4 de outubro de 2026 (a nota jurídica da matriz de reivindicações redesenhada em 5 de outubro de 2026) por figures/figures.py ao lado do rascunho a partir de measure_systems.out.txt, measure_map_features.out.txt, measure_patent_claims.out.txt, a página salva da patente americana, as páginas datadas do histórico citadas nas seções 8 e 9, e Kiradex/World/Daylight.swift; o script relê e confere os valores de origem antes de desenhar. Nenhuma arte dos jogos, nenhum logotipo. ↩↩↩↩↩↩

  44. U.S. Copyright Office, Circular 33: Works Not Protected by Copyright, https://www.copyright.gov/circs/circ33.pdf, conforme citada no primeiro post desta série (a sua nota 19, acessada em 2 de outubro de 2026). ↩↩↩↩

  45. App do autor, repositório do Kiradex no commit b1b78b1: Kiradex/World/Daylight.swift (Phase.init(hour:): case 6..<9: self = .morning, 9..<17 dia, 17..<20 fim de tarde, nos outros casos noite; Daylight.forcedHour, que lê o argumento de inicialização -plazaHour, nas linhas 100 a 105), Kiradex/World/PlazaStage.swift (daylight(at:), que usa Daylight.forcedHour quando está definido, na linha 58) e KiradexUITests/KiradexUITests.swift (uma caminhada iniciada com -plazaHour 21). Repositório privado. ↩↩↩↩↩

  46. pret, pokecrystal/constants/phone_constants.asm em 5beda23 (CONTACT_LIST_SIZE 10) e pokecrystal/constants/engine_flags.asm (wDailyRematchFlags 24, wDailyPhoneItemFlags 10, wDailyPhoneTimeOfDayFlags 24; as janelas de ligação por dia da semana, segunda 3, terça 3, quarta 4, quinta 4, sexta 4, sábado 3, domingo 3, e por período, manhã 9, tarde 7, noite 8, contadas por measure_systems.py), https://github.com/pret/pokecrystal/blob/master/constants/phone_constants.asm. ↩↩↩↩↩

  47. pret, pokeemerald/include/constants/flags.h em 731ad5b (as 12 flags FLAG_DAILY_* com nome, 9 delas presentes de berry), https://github.com/pret/pokeemerald/blob/master/include/constants/flags.h. Listadas por measure_systems.py. ↩

  48. pret, pokeemerald/include/constants/berry.h em 731ad5b (as constantes de estágio nas linhas 20 a 26, BERRY_TREES_COUNT 128 na linha 130), https://github.com/pret/pokeemerald/blob/master/include/constants/berry.h. Linhas impressas por measure_systems.py. ↩

  49. Enumeração do autor, 5 de outubro de 2026: enumerate_berry_yield.py na pasta de evidências do autor para este post, que imprime CalcBerryYieldInternal de src/berry.c do pokeemerald em 731ad5b (linhas 1210 a 1234: return min quando nada foi regado; caso contrário randMin + Random() % (randMax - randMin + 1) sobre o intervalo de (max - min) * (water - 1) a (max - min) * water, dividido por NUM_WATER_STAGES (4) e arredondado com a metade para cima), lê o minYield e o maxYield das 43 berries (de 1 a 2 para 14 berries, de 2 a 3 para 14, de 2 a 4 para 5, de 2 a 6 para 5, de 3 a 6 para 5) e lista cada colheita que cada número de estágios regados pode dar; saída enumerate_berry_yield.out.txt. ↩

  50. Serebii.net, “Pokéathlon” (HeartGold e SoulSilver; a rodada de três provas, o bônus de primeiro lugar, a loja diária e o título “Daily & Weekly Events”), acessado em 4 de outubro de 2026, https://www.serebii.net/heartgoldsoulsilver/pokeathlon.shtml. Fonte secundária; não medido. ↩

  51. pret, pokeemerald/src/tv.c em 731ad5b (TryStartRandomMassOutbreak chamado de TryPutPokemonTodayOnAir na linha 1115, a flag de jogo zerado na linha 1652 e o loop de surto existente nas linhas 1654 a 1657, que percorre i < LAST_TVSHOW_IDX com LAST_TVSHOW_IDX definido na linha 49 como TV_SHOWS_COUNT - 1, então confere os espaços 0 a 23 dos 25; StartMassOutbreak a partir da linha 1563, que define outbreakDaysLeft = 2 na linha 1578 e é chamado na linha 4906 por DoTVShowPokemonNewsMassOutbreak, a reportagem de surto como ela passa numa televisão; UpdateTimeBeforeMassOutbreak, linhas 1716 a 1737, desconta daysBeforeOutbreak a cada dia, e GetRandomActiveShowIdx só oferece uma reportagem de surto à televisão quando ele chega a 0, linha 800; rbernoulli(1, 200) na linha 1659, a verificação de espaço vazio nas linhas 1661 e 1662, onde FindFirstEmptyNormalTVShowSlot, a partir da linha 3118, procura só nos primeiros NUM_NORMAL_TVSHOW_SLOTS (5) espaços um que esteja fora do ar, probability = 50 na linha 1680, daysBeforeOutbreak = 1 na linha 1682), https://github.com/pret/pokeemerald/blob/master/src/tv.c, e src/battle_main.c (HandleEndTurn_FinishBattle a partir da linha 5098, que pula batalhas por link, batalhas por link gravadas, a primeira batalha, batalhas de Safari, de e-Reader, o tutorial do Wally e batalhas do Frontier nas linhas 5102 a 5108 e chama TryPutPokemonTodayOnAir na linha 5126). Linhas impressas por measure_systems.py. ↩↩↩

  52. pret, pokefirered/src/trainer_card.c em 037335f (as estrelas do cartão de link: HasAllKantoMons() na linha 850, berriesPicked >= 200 && jumpsInRow >= 200 na linha 886), https://github.com/pret/pokefirered/blob/master/src/trainer_card.c. Linhas impressas por measure_systems.py. ↩

  53. pret, pokeemerald/include/constants/pokemon.h em 731ad5b (os IDs de fita a partir de CHAMPION_RIBBON na linha 100), https://github.com/pret/pokeemerald/blob/master/include/constants/pokemon.h. ↩

  54. pret, pokeemerald/src/field_specials.c em 731ad5b (if (GetRibbonCount(leadMon) > NUM_CUTIES_RIBBONS) na linha 1386, um dos chamadores; os chamadores de concurso, da Battle Tower e de pós-batalha em contest_util.c, battle_tower.c e post_battle_event_funcs.c usam o mesmo teste >) e src/tv.c (TryPutSpotTheCutiesOnAir a partir da linha 2253: precisa de um espaço vazio de mistura de registros e de nenhum programa Spot the Cuties já criado, linha 2258, e define show->cuties.active = FALSE com o comentário “NOTE: Show is not active until passed via Record Mix.” na linha 2262), https://github.com/pret/pokeemerald/blob/master/src/tv.c. ↩

  55. pret, pokeemerald/include/constants/coins.h em 731ad5b (MAX_COINS 9999), https://github.com/pret/pokeemerald/blob/master/include/constants/coins.h. ↩

  56. pret, pokeemerald/src/lottery_corner.c em 731ad5b (os quatro prêmios nas linhas 16 a 19; o comentário “do not calculate ticket values for eggs” na linha 64; a regra de mais de um dígito nas linhas 70 e 94), https://github.com/pret/pokeemerald/blob/master/src/lottery_corner.c, com FLAG_DAILY_PICKED_LOTO_TICKET em include/constants/flags.h e SetRandomLotteryNumber em src/clock.c. Linhas impressas por measure_systems.py. ↩↩

  57. pret, pokeemerald/src/bike.c em 731ad5b (sMachBikeSpeeds, o tratamento de manobras da Acro Bike), https://github.com/pret/pokeemerald/blob/master/src/bike.c. ↩↩

  58. pret, pokeemerald/include/constants/global.h em 731ad5b (SECRET_BASES_COUNT 20, DECOR_MAX_SECRET_BASE 16, DECOR_MAX_PLAYERS_HOUSE 12), https://github.com/pret/pokeemerald/blob/master/include/constants/global.h. ↩↩

  59. pret, pokecrystal/engine/overworld/time.asm em 5beda23 (ReceiveCallDelays: db 20, 10, 5, 3 na linha 45, indexado por wTimeCyclesSinceLastCall, que CheckReceiveCallTimer aumenta em um, até 3, cada vez que o temporizador acaba, linhas 47 a 59, e InitCallReceiveDelay, linhas 12 a 14, zera; Script_ReceivePhoneCall o chama depois de cada ligação, engine/phone/phone.asm linha 431) e pokecrystal/engine/phone/phone.asm (o comentário “50% chance for a call” na linha 119; as verificações de período do dia e de cobertura), https://github.com/pret/pokecrystal/blob/master/engine/phone/phone.asm. Linhas impressas por measure_systems.py. ↩↩↩

  60. The Pokémon Company, ポケットモンスターオフィシャルサイト, ご利用について (regras do site), o parágrafo sobre obras derivadas, o parágrafo sobre ideias não solicitadas e a linha sobre marcas, acessado em 4 de outubro de 2026, https://www.pokemon.co.jp/rules/. As traduções no texto são do autor. ↩↩↩↩↩↩

  61. Google Patents, US12403397B2, “Storage medium, information processing system, information processing apparatus, and game processing method” (titulares Nintendo Co., Ltd. e The Pokémon Company; depositada em 1º de março de 2023; concedida em 2 de setembro de 2025), reivindicação 1, salva em 4 de outubro de 2026, https://patents.google.com/patent/US12403397B2/en. ↩↩↩↩↩↩↩

  62. Warner-Jenkinson Co. v. Hilton Davis Chemical Co., 520 U.S. 17 (1997), o syllabus do Reporter of Decisions como publicado pelo Legal Information Institute da Cornell Law School, salvo em 5 de outubro de 2026 (a Corte “adheres to the doctrine of equivalents” (adere à doutrina dos equivalentes), segundo a qual um produto ou processo que não infringe literalmente “may nonetheless be found to infringe if there is ‘equivalence’” (pode ainda assim ser considerado infrator se houver “equivalência”) entre os seus elementos e os elementos reivindicados, e a doutrina é aplicada “to each of the individual elements of a claim, rather than to the accused product or process as a whole” (a cada um dos elementos individuais de uma reivindicação, e não ao produto ou processo acusado como um todo); o syllabus é um resumo, não parte da decisão), https://www.law.cornell.edu/supct/html/95-728.ZS.html. ↩

  63. Suprema Corte do Japão, Terceira Turma, sentença de 24 de fevereiro de 1998, caso 1994 (O) No. 1083, o caso do dispositivo de rolamento de estrias de esferas (Ball Spline Bearing), na tradução para o inglês que o Tribunal Superior de Propriedade Intelectual publica na sua lista de decisões importantes sobre a doutrina dos equivalentes, salva em 5 de outubro de 2026 (quando um produto difere da reivindicação numa parte, ele é “regarded as identical with the construction as indicated in the scope of the patent claim” (considerado idêntico à construção indicada no escopo da reivindicação) se cinco condições forem atendidas, a primeira que “this part is not the essential part of the patented invention” (essa parte não é a parte essencial da invenção patenteada) e a última que não existam circunstâncias especiais, “such as the fact that the products had been intentionally excluded from the scope of the patent claim in the patent application process” (como o fato de os produtos terem sido intencionalmente excluídos do escopo da reivindicação no processo do pedido de patente)), https://www.courts.go.jp/ip/eng/assets/ip/eng/chizai_en/chizai_en-pdf-1640.pdf, com link a partir de https://www.courts.go.jp/ip/eng/hanrei/Important_IP_Judgment_by_Category/Patent/Doctrine_of_Equivalents/index.html. Vale a sentença japonesa. ↩

  64. Ana Diaz, “Pokémon Fangames Evolve Beyond Their Origins”, Aftermath, 1º de outubro de 2026 (publicado primeiro em 30 de setembro de 2026 pelo Fansplaining), acessado em 4 de outubro de 2026, https://aftermath.site/pokemon-fangames-fansplaining/. É a fonte de onde o documento do mundo do app tirou a sua frase sobre Uranium. ↩

  65. Nintendo Life, “Fan-Made Pokémon Prism Game Leaks Online After Nintendo Shutdown Notice”, 30 de dezembro de 2016 (a carta de 21 de dezembro; o lançamento planejado para 25 de dezembro), acessado em 4 de outubro de 2026, https://www.nintendolife.com/news/2016/12/fan-made_pokemon_prism_game_leaks_online_after_nintendo_shutdown_notice. ↩↩

  66. Internet Archive, “Nintendo’s Cease and Desist to Pokémon Prism”, enviado por um terceiro que diz que um colaborador do Prism lhe mandou o scan com tarjas; a descrição de quem enviou é partidária, e o scan não foi lido para este post, https://archive.org/details/pokemon-prism-cease-desist. ↩

  67. Luke Plunkett, “Pokémon’s Former Chief Lawyer On Shutting Down Fan Games & Honeymoon Business Deals”, Aftermath, 13 de março de 2024 (uma entrevista da série “What I Do” com Don McGowan), acessado em 4 de outubro de 2026, https://aftermath.site/pokemon-lawyer-cease-desist-fan-project-pikachu-movie/. ↩↩↩↩

  68. Chris Scullion, “Former Pokémon lawyer says fundraising and press coverage lead to fan project takedowns”, Video Games Chronicle, 14 de março de 2024, acessado em 4 de outubro de 2026, https://www.videogameschronicle.com/news/former-pokemon-lawyer-says-fundraising-and-press-coverage-lead-to-fan-project-takedowns/. ↩

  69. The National Law Review, “Guangdong Higher People’s Court: 107 Million RMB Settlement in Pokémon Copyright and Unfair Competition Case”, 23 de fevereiro de 2025 (o anúncio de 21 de fevereiro; ação aberta em dezembro de 2021; 500 milhões de RMB pedidos; o raciocínio de primeira instância), acessado em 4 de outubro de 2026, https://natlawreview.com/article/guangdong-higher-peoples-court-107-million-rmb-settlement-pokemon-copyright-and. ↩↩↩

  70. The Pokémon Company, 他社ゲームに関するお問い合わせについて, notícias corporativas, 25 de janeiro de 2024 (texto japonês com o comunicado em inglês embaixo), acessado em 4 de outubro de 2026, https://corporate.pokemon.co.jp/media/news/detail/335.html. ↩↩

  71. Nintendo Life, “The Pokémon Company Releases Official Statement About Palworld”, 25 de janeiro de 2024, acessado em 4 de outubro de 2026, https://www.nintendolife.com/news/2024/01/the-pokemon-company-releases-official-statement-about-palworld. ↩

  72. GamesRadar+, “Palworld developer reveals the exact patents it’s alleged to have infringed upon in the Nintendo lawsuit, and they all have application dates after the survival game’s release”, 8 de novembro de 2024 (a correspondência das três patentes, via Automaton, Kiyoshi Kurihara e Patent Attorney Corporation Siarasia; a patente-mãe de dezembro de 2021), acessado em 4 de outubro de 2026, https://www.gamesradar.com/games/survival/palworld-developer-reveals-the-exact-patents-its-alleged-to-have-infringed-upon-in-the-nintendo-lawsuit-and-they-all-have-application-dates-after-the-survival-games-release/. ↩↩↩

  73. Extração do autor, 4 de outubro de 2026, reescrita em 5 de outubro de 2026: measure_patent_claims.py na pasta de evidências do autor para este post lê as páginas salvas do Google Patents para título, titulares e datas, e pega a reivindicação 1 inteira do próprio contêiner de reivindicações da página (<claim num="1"> nas páginas japonesas, CLM-00001 na página americana), imprimindo separadamente o japonês original e a tradução automática do Google para o inglês nas três patentes japonesas, e o inglês original na patente americana, sem truncar; saída measure_patent_claims.out.txt. A primeira versão achatava a seção de reivindicações e a cortava em 3.000 caracteres, e a sua “reivindicação 1” da JP 7545191 avançava pela reivindicação 2; ela foi mantida ao lado da nova. ↩↩

  74. Pocketpair, “Regarding the lawsuit, changes to Palworld and the future”, aviso importante, 8 de maio de 2025 (o patch v0.3.11 de 30 de novembro de 2024; o patch v0.5.5; as mudanças “a result of the ongoing litigation”), acessado em 4 de outubro de 2026, https://www.pocketpair.jp/en/news/regarding-the-lawsuit-changes-to-palworld-and-the-future/. ↩↩

  75. Steam, detalhes do app Palworld (app 1623730), data de lançamento “9 Jul, 2026”, obtidos pela API da loja em 4 de outubro de 2026, https://store.steampowered.com/app/1623730/Palworld/. ↩

  76. Automaton West, “Nintendo patent tied to Palworld lawsuit stays rejected as JPO shuts down objections in unusually sharp-tongued notice”, 22 de julho de 2026 (o pedido divisional nº 2026-019762; o vídeo de Pokémon Generations de 2013; o raciocínio do examinador sobre atividade inventiva; o prazo de três meses), acessado em 4 de outubro de 2026, https://automaton-media.com/en/news/nintendo-patent-central-to-palworld-lawsuit-stays-rejected-as-jpo-shuts-down-objections-in-unusually-sharp-tongued-notice/. ↩

  77. Engadget, “Nintendo’s patent on summoning fighting NPCs is being reexamined”, 4 de novembro de 2025 (a ordem do diretor; o pedido da Konami de 2002 e a publicação da Nintendo citados como estado da técnica), acessado em 4 de outubro de 2026, https://www.engadget.com/gaming/nintendo/nintendos-patent-on-summoning-fighting-npcs-is-being-reexamined-180949135.html. ↩

  78. Claire Jackson, “US Patent Office Reexamining Controversial Pokemon Patent”, Kotaku, 4 de novembro de 2025, acessado em 4 de outubro de 2026, https://kotaku.com/pokemon-patent-summoning-nintendo-palworld-monsters-2000641133. ↩

  79. Andrew H. Velzen, “Pokémon Reexam Receives First Action from USPTO”, MBHB, 3 de abril de 2026 (o reexame nº 90/020,162; a primeira Office Action expedida em 25 de março de 2026 rejeitando todas as reivindicações com base no 35 U.S.C. § 103; as datas de resposta de 25 de junho e 25 de setembro de 2026; a reivindicação 1 citada), acessado em 4 de outubro de 2026, https://www.mbhb.com/intelligence/snippets/pokemon-reexam-receives-first-action-from-uspto/. ↩↩↩

  80. The Pokémon Company International, página de informações jurídicas, https://www.pokemon.com/us/legal/information: serviu uma verificação antibot ao coletor do autor em 4 de outubro de 2026, e a sua cópia na Wayback Machine devolveu o mesmo bloqueio; sem verificação. ↩↩

  81. Nintendo, “Nintendo Game Content Guidelines for Online Video & Image Sharing Platforms”, com o seu FAQ (A5 sobre venda; Q6 e A6 sobre outros conteúdos), acessado em 4 de outubro de 2026, https://www.nintendo.co.jp/networkservice_guideline/en/index.html. ↩↩↩

  82. Nintendo Life, “Cassette Beasts Dev On Doing What Pokémon Doesn’t In A Zelda-Inspired Overworld”, 26 de abril de 2023, acessado em 4 de outubro de 2026, https://www.nintendolife.com/features/cassette-beasts-dev-on-doing-what-pokemon-doesnt-in-a-zelda-inspired-overworld. ↩

  83. Gematsu, “Crema Games announces Pokemon-inspired multiplayer creature collection game Temtem”, 30 de abril de 2018, acessado em 4 de outubro de 2026, https://www.gematsu.com/2018/04/crema-games-announces-pokemon-inspired-multiplayer-creature-collection-game-temtem. ↩

  84. Documentação para desenvolvedores da Apple, “CMPedometer” (iOS 8.0; “An object for fetching the system-generated live walking data”; a exigência de descrição de uso), obtida como JSON em 4 de outubro de 2026, https://developer.apple.com/documentation/coremotion/cmpedometer. ↩↩

  85. Documentação para desenvolvedores da Apple, “stepCount” (HKQuantityTypeIdentifier; iOS 8.0), obtida como JSON em 4 de outubro de 2026, https://developer.apple.com/documentation/healthkit/hkquantitytypeidentifier/stepcount. ↩

  86. App do autor, repositório do Kiradex no commit b1b78b1: server/app/rooms.py (WALKABLE, is_walkable, may_move), server/app/main.py (_player a partir da linha 156, que lê o id de jogador de cada conexão como UUID na linha 160, com um apelido e a carta que ele mostra; _tile, que rejeita um movimento para um tile não caminhável; e o handler de movimento a partir da linha 217, que define o tile do jogador na linha 222), server/app/lines.py (“The preset lines: everything anyone can say in the plaza. Nothing is typed”), Kiradex/World/PlazaStage.swift (a propriedade @AppStorage("plaza.id") na linha 333, sob um comentário de documentação que diz que o id é criado uma vez e nunca digitado nem exibido, e join(), que o define como UUID().uuidString nas linhas 576 e 577 quando está vazio) e Kiradex/World/PlazaClient.swift (a mensagem de hello, que envia esse id na linha 135). Repositório privado. ↩↩↩↩↩↩↩

  87. Documentação para desenvolvedores da Apple, “startOfDay(for:)” (Calendar; iOS 8.0), obtida como JSON em 4 de outubro de 2026, https://developer.apple.com/documentation/foundation/calendar/startofday(for:). ↩↩

  88. Documentação para desenvolvedores da Apple, “isDate(:inSameDayAs:)” (Calendar; iOS 8.0), obtida como JSON em 4 de outubro de 2026, https://developer.apple.com/documentation/foundation/calendar/isdate(:insamedayas:). ↩↩

  89. Documentação para desenvolvedores da Apple, “NSCalendarDayChanged” (NSNotification.Name; iOS 8.0), obtida como JSON em 4 de outubro de 2026, https://developer.apple.com/documentation/foundation/nsnotification/name-swift.struct/nscalendardaychanged. ↩↩

  90. Documentação para desenvolvedores da Apple, “significantTimeChangeNotification” (UIApplication; os exemplos da discussão), obtida como JSON em 4 de outubro de 2026, https://developer.apple.com/documentation/uikit/uiapplication/significanttimechangenotification. ↩

  91. Verificação do autor, 5 de outubro de 2026: figures/saying_drift.py ao lado do rascunho, que roda a regra de deriva proposta no briefing com os números do teste de aceitação e confere que dez dias aplicados de uma vez equivalem a dez leituras diárias; saída figures/saying_drift.out.txt (50 depois de três leituras numa mesma data e depois de um reinício; 20, velho, depois de dez dias; 5, subindo, para um ditado velho em 10 três dias depois). ↩

Artigos relacionados

Pixel-Art Structures: Houses, Halls and Interiors on iPhone

How Pokémon, the SNES RPGs and Stardew build houses, interiors and floors, measured from source, and how Kiradex's town …

80 min de leitura

Pixel-Art Rooms: Furniture Grids, Caps and Scoring

How Emerald, Animal Crossing, Habbo, Stardew and FFXIV cap, grid and score a decorated room, measured from source, and a…

100 min de leitura

Prepare seu app para o iPhone Duo: um exemplo prático

Como preparar e enviar um app para o iPhone Duo: o carimbo do SDK que ativa o layout, um app real em cada pose, capturas…

55 min de leitura