Arqueologia Digital

Tópicos › Teclados Technics (KN5000, KN7000 e outros)

Teclados Technics (KN5000, KN7000 e outros)

131 conversas · anos 3 a 9 do grupo

Foto enviada por Felipe "Juca" Sanches em 10 mar 2024

O assunto começa no ano 3 (2019-2020), quando Felipe "Juca" Sanches pensou em usar uma alternativa livre ao Gotek para entender o protocolo de atualização de firmware por disquete do Technics SX-KN5000. No ano 4 (2020-2021) o trabalho ganhou corpo. O técnico Ronaldo Verardo dessoldou as mask ROMs para leitura no TL866CS. Com sugestões de RicBit, Felipe decifrou a compressão do arquivo de update: um byte-mapa e um buffer circular de 4 KB. Um membro da comunidade MAMEDev depois observou que o algoritmo é quase idêntico ao LZSS, e Felipe associou isso à assinatura "SLIDE4K". Ele publicou o descompressor em Python e criou o repositório kn5000_homebrew. Também fez o dump da ROM de dados rítmicos alterando o ponteiro dos "factory settings" e gravando um backup em disquete. Para entender o hardware, esboçou no MAME um driver do KN1500 e, no do KN5000, identificou um controlador compatível com VGA, o mapa de memória, o vetor de interrupções e a comunicação por micro-DMA entre as duas CPUs. Publicou o branch technics_keyboards (ainda com tela preta) e corrigiu o disassembler TLCS900 do MAME. Leonardo Roman encontrou o compilador oficial da Toshiba, e Felipe pausou a engenharia reversa para começar um port do GNU binutils para o TLCS900. No ano 5 houve apenas a intenção de retomar esse port e uma tentativa de rodar o compilador da Toshiba pelo Wine, sem sucesso.

No ano 6 (2022-2023), depois da tentativa com o binutils, Felipe começou um disassembler próprio baseado no ExecTrace (TLCS900_ExecTrace). Com ele documentou jump tables do firmware, no qual também encontrou símbolos de depuração. RicBit sugeriu otimizações e Leonardo Roman compartilhou o manual da CPU. No MAME, preparou o primeiro commit com a variante TMP94C241 e corrigiu as interrupções, o que fez o firmware sair de um laço de espera, embora a tela continuasse preta. Registrou o boot num documento público que chegou a 45 páginas. O dono finlandês de um site antigo enviou os discos de update das versões 7 e 8, que Felipe publicou no Internet Archive, e depois a versão 6 e o HD-TechManager5000. Felipe também trocou a placa danificada do painel e fez experimentos com disquetes. Encontrou um tutorial de modificação do Gotek com um erro de alimentação, e Leonardo Roman sugeriu o FlashFloppy, cujo código Felipe passou a estudar.

No ano 7 (2023-2024) o driver mostrou os primeiros gráficos (PR #11835). Ganhou um layout do painel em SVG (repositório KN5000_MAME_artwork), e os LEDs passaram a indicar a versão do firmware. O primeiro PR foi aceito no MAME (#12649), seguido do #12902. Felipe decodificou o formato dos disquetes de update e instalou pela primeira vez, sem erros, um firmware modificado ("Happy Hacking KN5000"). No processo tijolou duas placas, uma das quais voltou a funcionar. No Calango Hacker Clube, com Pedro de Medeiros, tentou sem sucesso adaptar um drive comum e instalou um Gotek, que salvava arquivos mas não instalava o update. Depois de tentar extrair ROMs por SysEx e por uma tela de hexdump, analisou a ppkn50.dll e fez pela porta paralela da HDAE5000 o dump da Program ROM, da HDAE5000 v2.06i e do par table_data, onde descobriu que fica o código de boot (/CS2). Na mesma época mostrou um protótipo do port da VM do Another World em assembly TLCS-900, preparou uma palestra sobre o KN5000 para a Tosconf e escreveu um esboço de driver para o sintetizador SX-WSA1R. No ano 8 (2024-2025) vieram: - patches na ROM que enganam o self-test do painel e exibem telas internas; - o dump da ROM de boot da subCPU pela serial, ainda incompleto; - o merge da variante TMP94C241 depois de dividir o código em PRs menores; - o início do micro DMA, um PR de rascunho da porta serial e o PR #14068 (barramento de expansão e HD-AE5000), aceito em setembro; - os primeiros passos com o LLVM.

No ano 9 (2025-2026) o disassembly remontado da ROM chegou a 99,94% de byte-matching. Depois, com o Claude Code, os bytes divergentes caíram de 1310 para 177 (ainda sem revisão). O repositório kn5000-roms-disasm foi tornado público e a documentação foi publicada no site KN5000-docs. No MAME foram aceitos a porta serial e o painel interativo, que entrou no MAME 0.288 ainda sem som. Felipe emulou a HDAE5000 e a porta paralela, ligando o teclado a um PC com Windows 95 emulado. Também entraram os PRs da demo "Feature Presentation", já com som, e da data wheel. A VM do Another World passou a rodar a demo inteira no KN5000 emulado. Com um backend TLCS-900 para o LLVM, feito com IA, o Mines, escrito em C, deu os primeiros sinais de vida no KN5000. Felipe também avançou, com o Claude, na engenharia reversa do DSP uPD6383GF e compartilhou um datasheet não oficial. Levou o driver do WSA1R ao MAME e passou a reorganizar a contagem de ciclos do core TLCS900. Para o KN7000, criou um core para a CPU e o driver; os PRs #16250 e #16394 (SP7001) e os de softlists foram aceitos, e o do HD-SX6 do KN6000 seguia aberto. Ele conseguiu rodar código pelo cartão SD num teclado sem modificações. Com um loader oficial de conversores em disquete, fez o dump do firmware v1.3 e das wave ROMs. Depois rodou no aparelho diagnósticos do gerador de tons e dos DSPs, o Pinball Fantasies, um ProTracker e um leitor de PDF de partituras.

Ano a ano: Ano 3 · Ano 4 · Ano 5 · Ano 6 · Ano 7 · Ano 8 · Ano 9

Terceiro ano novembro de 2019 a outubro de 2020

Felipe "Juca" Sanches compartilhou uma alternativa de código aberto ao Gotek, que pretendia usar para entender o protocolo de atualização de firmware por disquete do Technics SX-KN5000.

Firmware do Technics KN5000 no tema Engenharia reversa, código e ferramentas

Felipe "Juca" Sanches compartilhou uma alternativa de código aberto ao Gotek e explicou que pretende usá-la para entender o protocolo de atualização de firmware do teclado Technics SX-KN5000.

11 out 2020 Emulador de floppy de firmware livre e o firmware do Technics KN5000 ★★

Felipe "Juca" Sanches compartilhou uma alternativa de código aberto ao Gotek USB floppy. Ele explicou que pretende usá-la num ataque "man-in-the-middle" para entender o protocolo de atualização de firmware do teclado Technics SX-KN5000, cujos disquetes de update usam um formato que ele desconhece.

Participantes: Felipe "Juca" Sanches, L.

Ir para o início da conversa · mensagens-chave: #11460

Quarto ano novembro de 2020 a outubro de 2021

As ROMs do KN5000 foram dessoldadas por Ronaldo Verardo e Felipe decifrou, com sugestões de RicBit, a compressão do arquivo de update (similar ao LZSS), publicando o descompressor e o repositório kn5000_homebrew; também fez o dump da ROM rítmica via backup em disquete. Mapeou VGA, boot, interrupções e micro-DMA no MAME (branch com KN1500 e KN5000), corrigiu o disassembler TLCS900 e começou o port do GNU binutils.

Dessoldagem e leitura das ROMs no tema Engenharia reversa do teclado Technics KN5000

Felipe treinou dessoldagem e encomendou soquetes SOIC44 para ler no TL866CS as mask ROMs dessoldadas pelo técnico Ronaldo Verardo. Depois analisou a ROM de boot da sub-CPU, que fica em barramento separado e para cujo encapsulamento ele não encontrou adaptador. Fez ainda o dump da ROM de dados rítmicos pelo backup em disquete e comprou uma placa-mãe de reposição.

5 mar 2021 Technics SX-KN5000: preparação para ler as mask ROMs ★★★

Felipe "Juca" Sanches comprou um soprador de ar quente e passou a treinar a dessoldagem de CIs em placas de sucata; L. e FTMaciel comentaram ferramentas de dessoldagem. Ele encomendou soquetes SOIC44 com adaptadores para DIP, para ler no TL866CS as mask ROMs dessoldadas da placa principal do teclado Technics SX-KN5000 (duas CPUs Toshiba TLCS-900/H, dois DSPs, LCD colorido e drive de disquete), cujo service manual foi compartilhado. Felipe explicou que núcleos de CPU menos usados no MAME, como o TLCS-900, tendem a estar incompletos para novos firmwares. Ele também buscou o service manual do KN1500 no elektrotanya, que estava com defeito e voltou a funcionar dias depois.

Participantes: Felipe "Juca" Sanches, L., FTMaciel, Flávio Amieiro

Ir para o início da conversa · mensagens-chave: #12542 · #12591

11 mar 2021 ROMs do KN5000 dessoldadas e a cola sob os CIs ★★

Felipe "Juca" Sanches mostrou o vídeo da dessoldagem das ROMs do KN5000 feita por Ronaldo Verardo, o técnico de quem comprou o teclado. O grupo discutiu se o material sob os CIs era cola ou fluxo; Ronaldo explicou que é cola, necessária porque a solda é feita por onda, e mostrou a ponteira que fez com fio rígido. Também se comentou o gerador de som "Dynamic PCM" do teclado.

Participantes: Felipe "Juca" Sanches, Flávio Amieiro, Erin Pinheiro 🐿, FTMaciel, Aylons Hazzud, Ronaldo Verardo

Ir para o início da conversa · mensagens-chave: #12653 · #12662

1 ago 2021 ROM de boot da sub-CPU do KN5000 e módulo de disco rígido ★★

Pelo diagrama de blocos do manual de serviço, Felipe "Juca" Sanches concluiu que a mask ROM de 1 Mbit da sub-CPU, que controla DSPs e o gerador de tons, fica em um barramento separado, inacessível pela CPU principal. Como alternativa, considerou ler o chip diretamente ou modificar a parte do programa da sub-CPU guardada em flash. Citou também o raro módulo opcional de disco rígido HDAE5000.

Participantes: Felipe "Juca" Sanches, Augusto Almeida

Ir para o início da conversa · mensagens-chave: #13871 · #13878

12 ago 2021 Dump de memória do KN5000 via backup em disquete ★★★

Felipe "Juca" Sanches alterou no firmware o ponteiro dos "factory settings" para outra região. Depois de restaurar as configurações de fábrica e gravar um backup, o disquete passou a conter a memória apontada. Assim descobriu que a flash fica espelhada em 0xC00000 e fez o dump da ROM de dados rítmicos (1 MB). Depois disso o teclado ficou sem som mesmo com a imagem original reinstalada; Felipe apontou como possível causa ter alterado o mapeamento do chip select /CS2.

Participantes: Felipe "Juca" Sanches, Flávio Amieiro, Elson (McGuyver) ☠️, FTMaciel

Ir para o início da conversa · mensagens-chave: #14099 · #14112 · #14153

16 ago 2021 Mask ROM da sub-CPU do KN5000 ★

Felipe "Juca" Sanches compartilhou uma planilha e analisou a mask ROM de boot da sub-CPU, compatível pino a pino com uma M27C1001 e alimentada a 5 V. O encapsulamento parece ser TSSOP32, e ele não encontrou adaptador para o leitor.

Participantes: Felipe "Juca" Sanches, Erin Pinheiro 🐿

Ir para o início da conversa · mensagens-chave: #14218 · #14228

19 ago 2021 Nova placa-mãe do KN5000 e ideia de sniffer do painel ★

Felipe "Juca" Sanches comprou outra placa-mãe de KN5000 como reposição. Para fazer emulação de alto nível dos microcontroladores do painel de botões, propôs capturar o protocolo serial com uma rotina residente instalada no vetor de interrupções. Ismael Luceno sugeriu o Bus Pirate, e Felipe abriu uma enquete sobre as mensagens do projeto.

Participantes: Felipe "Juca" Sanches, Ismael Luceno, Flávio Amieiro

Ir para o início da conversa · mensagens-chave: #14259

Driver do KN1500 no MAME no tema Engenharia reversa do teclado Technics KN5000

Como preparação para o KN5000, Felipe esboçou um driver do Technics KN1500 no MAME, explicou a mudança de licença do MAME e escaneou o LCD do aparelho, com todos os segmentos acesos por um Arduino, para criar um layout SVG.

15 mar 2021 Driver do Technics KN1500 no MAME e licença do MAME ★★★

Felipe "Juca" Sanches esboçou um driver de emulação do teclado Technics KN1500 no MAME, ainda sem funcionar, como preparação para o KN5000. Flávio Amieiro sugeriu um vídeo explicando um driver do MAME. Felipe indicou sua palestra do FISL15 e explicou a mudança de licença do MAME: antes a licença proibia uso comercial; hoje o núcleo é BSD-3-clause e código GPL é aceito apenas em drivers.

Participantes: Felipe "Juca" Sanches, Flávio Amieiro

Ir para o início da conversa · mensagens-chave: #12733 · #12752

20 mar 2021 Escaneamento do LCD do KN1500 para layout SVG do MAME ★★

Felipe "Juca" Sanches observou que a variante da CPU do KN5000 (barramento de 32 bits) provavelmente ainda não existe no MAME. Ele programou um Arduino para acender todos os segmentos do LCD do Technics SX-KN1500, escaneou o display e está vetorizando a imagem para criar um layout SVG para o MAME.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #12811 · #12812

Compressão do arquivo de atualização no tema Engenharia reversa do teclado Technics KN5000

Com sugestões de RicBit, Felipe decodificou o formato comprimido do arquivo de atualização: um byte-mapa indica dados crus ou referências a um buffer circular de 4 KB. Ele publicou o descompressor em Python, localizou gráficos da interface no firmware e criou o repositório kn5000_homebrew. Um membro da comunidade MAMEDev observou que o algoritmo é quase idêntico ao LZSS, o que Felipe associou à assinatura "SLIDE4K" do cabeçalho.

22 jul 2021 Análise da compressão do arquivo de update do Technics KN5000 ★★★

Felipe "Juca" Sanches pediu ajuda a RicBit para identificar a compressão do arquivo de instalação de sistema do teclado Technics SX-KN5000 (Kn5kv10.img), no qual apareciam fragmentos de strings. RicBit sugeriu LZ77/LZ78 e explicou as diferenças, e Felipe começou a decodificar exemplos como "FOOT CONTROLLER". O objetivo era descomprimir o arquivo para estudar o código e obter mais informações sobre o hardware.

Participantes: Felipe "Juca" Sanches, RicBit, L.

Ir para o início da conversa · mensagens-chave: #13617 · #13623

23 jul 2021 Algoritmo de compressão do firmware do KN5000 decifrado ★★★

Felipe "Juca" Sanches alterou uma string no arquivo de update e o instalou no teclado, mostrando que o processo não valida checksum. Depois descreveu o formato: um byte-mapa indica se os próximos dados são crus ou referências de 2 bytes a trechos de um buffer circular de 4 KB. Em 27/07 publicou o script em Python que descomprime o arquivo HKMSPRG.SLD; a CPU do aparelho é a Toshiba TLCS900H.

Participantes: Felipe "Juca" Sanches, RicBit, kretcheu, Ronaldo Verardo, Hugo (Agaelebê)

Ir para o início da conversa · mensagens-chave: #13661 · #13680 · #13683

27 jul 2021 Gráficos do firmware do KN5000, repositório kn5000_homebrew e LZSS ★★★

Com o firmware descomprimido, Felipe "Juca" Sanches localizou com o binxelview gráficos da interface (FADE IN/OUT, logotipo Technics, diagramas MIDI) e criou o repositório kn5000_homebrew. Um membro da comunidade MAMEDev observou que o algoritmo é quase idêntico ao LZSS, e Felipe associou a isso a assinatura "SLIDE4K" do cabeçalho. A recompressão com o pacote lzss do PyPI deixou os instrumentos com mensagem de erro e o teclado sem som; Felipe notou que o pacote inicializa o buffer com espaços (0x20) e não com zeros, mas a imagem modificada ainda saía corrompida.

Participantes: Felipe "Juca" Sanches, Erin Pinheiro 🐿, L., RicBit, kretcheu, Aylons Hazzud, Ronaldo Verardo

Ir para o início da conversa · mensagens-chave: #13729 · #13754 · #13774

Mapa de hardware, boot e emulação no MAME no tema Engenharia reversa do teclado Technics KN5000

No debugger do MAME, Felipe identificou um controlador compatível com VGA. Também localizou a imagem da flash no espaço de endereçamento e analisou o boot, o vetor de interrupções e a comunicação por micro-DMA entre as duas CPUs. Publicou o branch do MAME com os drivers do KN1500 e do KN5000 e corrigiu o disassembler TLCS900 para os registradores de DMA da TLCS-900/H2.

31 jul 2021 Controlador compatível com VGA no KN5000 ★★★

No debugger do MAME, Felipe "Juca" Sanches reconheceu no firmware do KN5000 acessos às portas 3C4/3C5 e 3C8/3C9 típicos de VGA e encontrou a inicialização da paleta de 8 cores básicas. O esquemático confirmou o sinal VGA.IOCS, com as portas mapeadas a partir de 0x170000. Ele também documentou os chip selects de disquete, HDD opcional e porta paralela.

Participantes: Felipe "Juca" Sanches, L., Augusto Almeida

Ir para o início da conversa · mensagens-chave: #13802 · #13844 · #13854

1 ago 2021 Modo texto VGA no KN5000 e localização da imagem da flash ★★★

Felipe "Juca" Sanches alterou a paleta de cores do teclado e escreveu em assembly TLCS900H uma inicialização de modo texto VGA baseada no DOSBox, que resultou em tela preta; passou então a consultar o livro de Ferraro. Buscando instruções ret separadas pela distância entre duas rotinas conhecidas, concluiu que o conteúdo da flash corresponde aos primeiros 2 MB do arquivo descomprimido, mapeados no topo do espaço de endereçamento da CPU, e encontrou o ponto de entrada da CPU principal.

Participantes: Felipe "Juca" Sanches, L., RicBit

Ir para o início da conversa · mensagens-chave: #13945 · #13992 · #13994

8 ago 2021 CPU TMP94C241 no MAME e análise do boot do KN5000 ★★★

Felipe "Juca" Sanches estava transcrevendo as tabelas de SFRs das quatro variantes de TLCS900 suportadas pelo MAME e analisou o código de boot do KN5000 (watchdog, portas de I/O, timers, chip selects), chegando ao mapa de memória. Levantou a hipótese de que o boot ocorre pela "table data ROM", da qual tinha apenas metade do dump, e implementou de forma preliminar timers, interrupções, seriais e ADC no emulador.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #14019 · #14025

11 ago 2021 Vetor de interrupções do KN5000 e branch do MAME ★★★

A emulação travava num loop que espera variáveis alteradas por rotinas de interrupção. Felipe "Juca" Sanches explicou o vetor a partir de 0xFFFF00 (entry point 0xEF03C6) e listou, cruzando com o datasheet, os endereços de cada rotina de tratamento a implementar. Ele também publicou seu branch do MAME com a emulação em andamento dos teclados KN1500 e KN5000. RicBit comentou que esse tipo de loop é comum em jogos de Master System.

Participantes: Felipe "Juca" Sanches, RicBit

Ir para o início da conversa · mensagens-chave: #14058 · #14075 · #14082

22 ago 2021 KN5000 recuperado e protocolo entre as duas CPUs ★★★

Felipe "Juca" Sanches recuperou o teclado: o problema era um disquete de instalação corrompido, e uma cópia gerada com dd a partir da imagem oficial resolveu. Em seguida analisou a rotina da INT0 (0xEF3525), que lê o registrador de comunicação com a sub-CPU em 0x140000 e dispara micro-DMA no canal 0. Na rotina de fim desse DMA, os 3 bits altos do byte recebido indexam uma jump table em 0xE00012.

Participantes: Felipe "Juca" Sanches, kretcheu

Ir para o início da conversa · mensagens-chave: #14304 · #14322

22 ago 2021 Correção do disassembler TLCS900 do MAME (LDC e registradores de DMA) ★★★

Felipe "Juca" Sanches encontrou um bug no disassembler do MAME na instrução LDC para registradores de controle de micro-DMA. Pelo manual do compilador Toshiba, viu que a TLCS900/H2 usa endereços de registradores diferentes; compilou código C com o compilador proprietário para obtê-los e corrigiu o disassembler. Com isso identificou a rotina que configura os canais DMA 0 e 2 entre as CPUs e planeja substituir aos poucos o código original por implementações próprias em C.

Participantes: Felipe "Juca" Sanches, Augusto Almeida, kretcheu, Julio

Ir para o início da conversa · mensagens-chave: #14365 · #14374 · #14382

Port do GNU binutils para o TLCS900 no tema Engenharia reversa do teclado Technics KN5000

Depois de considerar as opções levantadas pelo grupo (o compilador oficial da Toshiba, encontrado por Leonardo Roman, o libcpu e o sdcc), Felipe começou o port do GNU binutils para o TLCS900, a começar pelo disassembler, que compara com o do MAME. Ele pausou a engenharia reversa do teclado para fazer esse toolchain e, depois de uma pane de HD, concluiu que precisa documentar melhor o trabalho em público.

13 ago 2021 Toolchain para TLCS900: compilador Toshiba e port do binutils ★★★

Em busca de um compilador ou assembler para TLCS900, Leonardo Roman encontrou no Internet Archive o compilador oficial da Toshiba, e RicBit sugeriu o libcpu, que Felipe "Juca" Sanches avaliou como aparentemente abandonado e que não compilou para ele. Ismael Luceno sugeriu o sdcc, que segundo Leonardo Roman suporta apenas o TLCS90. Felipe retomou a ideia de 14 anos antes (tlcs900archc) e iniciou o port do GNU binutils, começando pelo disassembler, como passo para o assembler e um futuro port do GCC.

Participantes: Felipe "Juca" Sanches, RicBit, Leonardo Roman, Ismael Luceno, Deleted Account

Ir para o início da conversa · mensagens-chave: #14182 · #14190 · #14250

30 ago 2021 Primeiros resultados do objdump para TLCS900 ★★

Felipe "Juca" Sanches mostrou o disassembly do objdump de seu port do binutils lado a lado com o do MAME. Por ora o disassembler mostra os SFRs apenas por endereço numérico, e o próximo foco é o assembler.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa

2 set 2021 Progresso do disassembler da CPU do Technics KN5000 ★

Respondendo a kretcheu, que pediu notícias, Felipe "Juca" Sanches relatou commits que implementam o disassembly de mais instruções da CPU do teclado, embora ainda faltasse muito para terminar o assembler e o código tivesse muita repetição. Quando L. sugeriu um link do Hackaday que talvez ajudasse com o teclado, Felipe disse que tinha pausado a engenharia reversa do teclado para fazer o toolchain da CPU dele, que pretende usar para escrever código e inspecionar o funcionamento do teclado sem digitar opcodes num editor hexadecimal.

Participantes: kretcheu, Felipe "Juca" Sanches, L.

Ir para o início da conversa · mensagens-chave: #14403 · #14405 · #14424

19 set 2021 Método do disassembler TLCS900 e mapa de memória do KN5000 ★★

Felipe "Juca" Sanches explicou que implementa o disassembler do TLCS900 no binutils usando a tabela de opcodes do datasheet e compara a saída com o disassembler do MAME, testando com a ROM de boot do KN5000. Disse que deduziu o mapa de memória juntando o esquemático do service manual com a rotina de boot que configura os chip selects; por enquanto o driver usa um mapa estático. O teclado custava 5 mil reais em 1996.

Participantes: Felipe "Juca" Sanches, Deleted Account, Shideravan

Ir para o início da conversa · mensagens-chave: #15046 · #15052 · #15056

25 set 2021 Pane de HD e documentação do uso do binutils ★

Felipe "Juca" Sanches contou que uma pane no HD do notebook fez o histórico do shell voltar três semanas; o código estava em git público. Uma imagem postada antes no grupo lembrou a ele o comando de disassembly com binutils, e ele concluiu que precisa documentar melhor seu trabalho num lugar acessível ao público.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #15628 · #15631

O projeto explicado e os planos para o futuro no tema Engenharia reversa do teclado Technics KN5000

Felipe explicou a Shideravan o hardware do teclado e o estado do driver, disse que provavelmente usaria o KN5000 como controlador MIDI durante o desenvolvimento e considerou o SerenityOS como base de um sistema livre para o teclado, concluindo que talvez seja melhor fazer um do zero.

18 set 2021 Projeto de emulação do Technics KN5000 explicado a Shideravan ★★★

Felipe "Juca" Sanches explicou o projeto: o driver incompleto do KN5000 no MAME fica no branch technics_keyboards e ainda mostra tela preta, enquanto ele porta as ferramentas GNU (binutils, talvez o gcc) para o TOSHIBA TLCS900. O teclado tem duas CPUs TOSHIBA (uma para a interface e os periféricos, outra para o som), dois DSPs, um gerador de som custom, um controlador de disquete e um controlador VGA; o service manual traz o circuito completo. Também comentou drivers de teclados Ensoniq no MAME e a tentativa de emular o GranTrak10. Shideravan lembrou que a CPU é usada no Neo Geo Pocket, e Felipe disse esperar que o toolchain ajude o homebrew desse console.

Participantes: Felipe "Juca" Sanches, Shideravan

Ir para o início da conversa · mensagens-chave: #14928 · #14938 · #14969

19 set 2021 FPGASID e controladores MIDI para drivers de teclados no MAME ★

Ismael Luceno compartilhou o FPGASID, reimplementação do SID em FPGA, uma das poucas com os filtros em analógico. Shideravan perguntou por um teclado só de entrada para o PC, e os participantes indicaram controladores MIDI USB. Felipe "Juca" Sanches sugeriu usá-los com os drivers de teclados do MAME, disse que provavelmente usaria o próprio KN5000 como controlador MIDI durante o desenvolvimento do driver e contou que comprou o teclado no Mercado Livre, junto com um segundo quebrado para dumpar as ROMs.

Participantes: Ismael Luceno, Shideravan, Erin Pinheiro 🐿, Felipe "Juca" Sanches, Deleted Account

Ir para o início da conversa · mensagens-chave: #15096 · #15103

29 set 2021 SerenityOS como base de um sistema livre para o KN5000 ★★

Felipe "Juca" Sanches encaminhou uma mensagem de L. com o PR que adiciona suporte a skins do WinAmp ao SerenityOS, começou a compilar o sistema e perguntou se ele poderia servir de base para um sistema livre no KN5000. L. respondeu que o SerenityOS roda em x86/x64, com port para ARM começando, e perguntou se a CPU do teclado tem MMU. Felipe concluiu que talvez seja melhor fazer do zero, mas que é cedo para pensar nisso.

Participantes: Felipe "Juca" Sanches, L., Augusto Almeida, FTMaciel, Shideravan

Ir para o início da conversa · mensagens-chave: #15680 · #15727

Quinto ano novembro de 2021 a outubro de 2022

Felipe mencionou a intenção de retomar o port do binutils para o TLCS900 e procurou o compilador da Toshiba, que Leonardo Roman apontou no archive.org, mas não conseguiu rodá-lo pelo Wine.

Technics KN5000, TLCS900 e toolchains no tema Another World, Pense Bem e outros projetos de engenharia reversa

Felipe disse que pretendia retomar o port do binutils para o TLCS900 e procurou o compilador da Toshiba, que Leonardo Roman apontou no archive.org. Ismael Luceno buscou ajuda para portar o gcc-ia32 (x86 de 16 bits) para o GCC 12.

6 jan 2022 Cena homebrew do Nintendo Switch ★

Felipe "Juca" Sanches comprou um Switch OLED e perguntou se há desenvolvimento homebrew na plataforma. Shideravan descreveu a cena: CFW instalados por meio de exploits, como o fusee-gelee, ports de jogos e emuladores, e diferenças entre revisões de hardware. Felipe mencionou que pretende retomar o port do binutils para o TLCS900, processador do teclado Technics KN5000.

Participantes: Felipe "Juca" Sanches, Shideravan, Ricardo Bánffy

Ir para o início da conversa · mensagens-chave: #18562 · #18579 · #18587

5 mai 2022 Porte do gcc-ia32 (x86 de 16 bits) para o GCC 12 ★

Ismael Luceno procurou ajuda para portar o gcc-ia32, suporte a x86 de 16 bits no GCC, para o GCC 12, começando pelo modo standalone. Perguntado por Pedro de Medeiros sobre C++17, disse que em teoria seria possível, mas que o runtime é bem mais complexo.

Participantes: Ismael Luceno, Pedro de Medeiros 👾, Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #20202

12 mai 2022 Compilador TLCS900 da Toshiba para o projeto KN5000 ★★

Felipe "Juca" Sanches procurava o compilador proprietário da Toshiba para TLCS900, e Leonardo Roman apontou a cópia no archive.org. Felipe disse que não conseguiu rodá-lo pelo Wine e não lembrava como tinha feito isso antes. Também indicou o tópico do fórum sobre desenvolvimento homebrew para o teclado Technics KN5000.

Participantes: Felipe "Juca" Sanches, Leonardo Roman, João Carlos

Ir para o início da conversa · mensagens-chave: #20271 · #20275

Sexto ano novembro de 2022 a outubro de 2023

Felipe começou um disassembler TLCS-900 baseado no ExecTrace, encontrou símbolos de depuração no firmware, preparou o primeiro commit com a variante TMP94C241 e corrigiu as interrupções no MAME, ainda com tela preta, registrando o boot num documento público que chegou a 45 páginas. Publicou no Internet Archive os discos de update v7 e v8 e depois recebeu a v6, trocou a placa do painel e fez experimentos com disquetes, enquanto Leonardo Roman sugeriu o FlashFloppy.

Disassembler de TLCS-900 e estudo do firmware no tema Emulação do Technics KN5000

Felipe começou, com base no ExecTrace, um disassembler da CPU Toshiba TLCS-900/H e documentou as jump tables do firmware. RicBit sugeriu melhorias no código e Leonardo Roman compartilhou o manual da CPU. Felipe também encontrou símbolos de depuração no binário e comprou um Neo Geo Pocket Color, que usa a mesma CPU.

23 jan 2023 Início de um disassembler TLCS-900 para o firmware do Technics KN5000 ★★★

Felipe "Juca" Sanches começou um disassembler da CPU Toshiba TLCS-900/H, usada no teclado Technics KN5000 e no Neo Geo Pocket, com base no ExecTrace, depois de uma tentativa anterior com o GNU binutils. Ele propôs rotinas para detectar cartuchos de Neo Geo Pocket e vetores de boot. Na primeira etapa, desmontou 184 instruções em sequência a partir do ponto de entrada do firmware. O próximo passo é marcar as instruções de desvio. Quando L. perguntou sobre suporte a MIDI no MAME para o teclado emulado, ele respondeu que já existe.

Participantes: Felipe "Juca" Sanches, L.

Ir para o início da conversa · mensagens-chave: #25327 · #25335 · #25389

27 jan 2023 Jump tables no firmware do KN5000 e publicação do TLCS900_ExecTrace ★★★

Felipe "Juca" Sanches explicou como documenta as jump tables do firmware do KN5000 (por exemplo, a de 4 ponteiros em 0xFCB6F9, declarada com read_jump_table) para que o disassembler encontre mais rotinas. Ele também encontrou tabelas de 192 ponteiros e procura falhas de verificação de índice que permitam executar código para depurar seu descompressor. Ao publicar o código, RicBit identificou um trecho acidentalmente quadrático e sugeriu usar set() e match case, e Leonardo Roman compartilhou o manual do TLCS-900 de 1994 para resolver instruções desconhecidas. Felipe ainda citou a mesa Sony PVE-500, que usa CPUs TLCS-Z80 e tem driver no MAME.

Participantes: Felipe "Juca" Sanches, L., RicBit, Pedro de Medeiros 👾, Leonardo Roman

Ir para o início da conversa · mensagens-chave: #25557 · #25615 · #25630

30 jan 2023 Compra de um Neo Geo Pocket Color, com a mesma CPU do KN5000 ★

Felipe "Juca" Sanches comprou no eBay um Neo Geo Pocket Color, que usa a mesma CPU do KN5000, e discutiu o que fazer com ele, como portar a VM do Another World, que esbarra na resolução da tela. Erin Pinheiro contou como trouxe um teclado musical do Reino Unido como bagagem despachada.

Participantes: Felipe "Juca" Sanches, Pablo Vasques Bravo-Villalba, L., Erin Pinheiro 🐿

Ir para o início da conversa · mensagens-chave: #25675 · #25679 · #25684

2 fev 2023 Símbolos de depuração no firmware do KN5000 ★★

Felipe descobriu que o binário do firmware do teclado Technics KN5000 contém símbolos de depuração e escreveu uma função para ler as strings e os ponteiros, embora os nomes ainda não se encaixassem. Ele separou o código de estudo do KN5000 do disassembler genérico da CPU TLCS900H e citou como próximo passo detectar e interpretar o cabeçalho de cartuchos de Neo Geo Pocket Color.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #25698 · #25709 · #25710

Driver do KN5000 no MAME no tema Emulação do Technics KN5000

Felipe começou a reorganizar o branch local para enviar ao MAME um pull request com o esboço do driver, cujo primeiro commit adiciona suporte à variante TMP94C241 do TLCS900. Depois corrigiu a execução das rotinas de interrupção, e com isso o firmware passou de um laço de espera, mas a tela continuou preta. Ele também fez uma transmissão ao vivo sobre o trabalho.

20 fev 2023 Driver do KN5000 no MAME: preparação do pull request e documento ★★★

Felipe começou a reorganizar seu branch local do MAME com o esboço de driver do Technics KN5000 para enviar um pull request, que ainda não dá sinal de vida. O primeiro commit adiciona suporte à variante TMP94C241 do TLCS900. Ele também abriu um documento público para registrar o código de boot e a inicialização do hardware.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #26098 · #26105

6 mar 2023 KN5000 no MAME: tratamento de interrupções do TLCS900 ★★

Felipe corrigiu a execução das rotinas de interrupção no emulador do TLCS900 usado pelo KN5000 no MAME. Com isso o firmware passou de um laço de espera que, segundo ele, aguarda uma variável atualizada por uma interrupção de timer, mas a tela VGA continua preta. Como próximo passo, ele propôs registrar a comunicação serial com o painel de botões e implementar emulação de alto nível (HLE) dos microcontroladores do painel, cujo código não foi extraído. Também notou que a Technics fabricou pianos digitais com a mesma arquitetura.

Participantes: Felipe "Juca" Sanches, Augusto Almeida

Ir para o início da conversa · mensagens-chave: #26391 · #26401 · #26402

9 mar 2023 Live sobre o KN5000 e a placa do painel danificada ★★

Felipe fez uma transmissão ao vivo no YouTube sobre a emulação do KN5000 no MAME. Depois mostrou a PCB do painel de controle danificada e o microcontrolador do painel. Disse que já comprou uma placa nova e que pretende usar a danificada com um Arduino para decodificar o protocolo. Pelo que entendeu, o chip contém uma mask ROM, e o dump exigiria decapping.

Participantes: Felipe "Juca" Sanches, Hugo (Agaelebê), Pablo Vasques Bravo-Villalba, Ismael Luceno

Ir para o início da conversa · mensagens-chave: #26415 · #26416 · #26430

Documento de pesquisa sobre a emulação no tema Emulação do Technics KN5000

Felipe registrou o código de boot e a inicialização do hardware num documento público, que chegou a 22 páginas e depois a 45. Ele pediu leitura e comentários e cogitou publicar um livro sobre o processo, se o emulador funcionar.

25 fev 2023 Documento de emulação do KN5000 chega a 22 páginas ★★

Felipe mostrou um HD de 1 GB com mais de 20 anos e sem dados, comprado por ser um item especial. Contou que o documento sobre a emulação do KN5000 já tinha 22 páginas e que escrever o documento ajuda o próprio desenvolvimento do emulador, e pediu leitura e comentários.

Participantes: Felipe "Juca" Sanches, Robson França, Augusto Almeida

Ir para o início da conversa · mensagens-chave: #26196 · #26200 · #26201

17 mar 2023 Documento do KN5000 cresce para 45 páginas ★★

Felipe indicou mensagens antigas do grupo e o documento do KN5000, que passou de 35 para 45 páginas numa noite. Ele planejou traduzir para o inglês a técnica de dump pela rotina de backup das configurações do usuário e cogitou publicar um livro sobre o processo, se o emulador funcionar.

Participantes: Felipe "Juca" Sanches, Flávio Amieiro, Ismael Luceno

Ir para o início da conversa · mensagens-chave: #26537 · #26542 · #26543

Versões do firmware e estratégias de dump no tema Emulação do Technics KN5000

Felipe recebeu do dono finlandês de um site antigo as versões 7 e 8 dos discos de atualização do firmware e publicou um pacote com os discos no Internet Archive; depois recebeu também a versão 6 e o software HD-TechManager5000. Ele identificou as versões instaladas no seu teclado, ainda sem dump. Como possível vetor de injeção de código para extrair a ROM principal sem alterá-la, avaliou a atualização da flash da placa de disco rígido.

26 fev 2023 Discos de atualização do firmware do KN5000 no Internet Archive ★★★

Felipe pediu ao dono finlandês de um site de cerca de 20 anos os discos de atualização do firmware do KN5000 com links quebrados e recebeu as versões 7 e 8; a versão 6 ainda faltava. Ele listou as datas das versões 7 a 10 e explicou que versões antigas permitem comparar binários e procurar bugs exploráveis, e que ainda busca uma forma de fazer o dump a partir de um firmware não modificado. L. e Felipe notaram que o Wayback Machine guardou páginas 404 no lugar de alguns desses arquivos. Felipe publicou um pacote com os discos no Internet Archive.

Participantes: Felipe "Juca" Sanches, L.

Ir para o início da conversa · mensagens-chave: #26240 · #26249 · #26287

2 mar 2023 Placa de disco rígido do KN5000 e o HD-TechManager5000 ★★★

Ao extrair o disquete de instalação do disco rígido opcional do KN5000, Felipe viu que a atualização da flash da controladora não é comprimida. Isso a torna candidata a vetor de injeção de código para fazer o dump da ROM principal sem alterá-la. Ele confirmou que um chip dessoldado por Ronaldo foi lido corretamente, verificando os bytes checados pelo autoteste. O dono finlandês do site lhe enviou a versão 6 do firmware e o software HD-TechManager5000, de 1998.

Participantes: Felipe "Juca" Sanches, Ronaldo Verardo, L., Robson França

Ir para o início da conversa · mensagens-chave: #26313 · #26321 · #26338

15 mar 2023 KN5000: troca da placa do painel e versões de firmware instaladas ★★★

Felipe substituiu a placa danificada do painel por uma nova e verificou as versões de firmware: o teclado veio de fábrica com a versão 4 ("Main Program 1284"), ainda sem dump. A placa de disco rígido instalada tem firmware 2.06i, também sem dump, o que impede regravar qualquer uma das ROMs antes de extraí-las. Ele considerou projetar uma placa de extensão só com uma ROM ou comprar uma segunda placa-mãe, e sugeriu criar um substituto do binxelview para GNU/Linux.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #26494 · #26518 · #26522

Painel, disquetes e o teclado físico no tema Emulação do Technics KN5000

Felipe trocou a placa danificada do painel e pretende usar a antiga com um Arduino para decodificar o protocolo. Nos experimentos com disquetes, encontrou nomes de pinos errados no esquemático do manual de serviço e um tutorial de modificação do Gotek com um erro de alimentação. Leonardo Roman sugeriu o FlashFloppy, e Felipe passou a estudar o código desse firmware.

9 mar 2023 Live sobre o KN5000 e a placa do painel danificada ★★

Felipe fez uma transmissão ao vivo no YouTube sobre a emulação do KN5000 no MAME. Depois mostrou a PCB do painel de controle danificada e o microcontrolador do painel. Disse que já comprou uma placa nova e que pretende usar a danificada com um Arduino para decodificar o protocolo. Pelo que entendeu, o chip contém uma mask ROM, e o dump exigiria decapping.

Participantes: Felipe "Juca" Sanches, Hugo (Agaelebê), Pablo Vasques Bravo-Villalba, Ismael Luceno

Ir para o início da conversa · mensagens-chave: #26415 · #26416 · #26430

15 mar 2023 KN5000: troca da placa do painel e versões de firmware instaladas ★★★

Felipe substituiu a placa danificada do painel por uma nova e verificou as versões de firmware: o teclado veio de fábrica com a versão 4 ("Main Program 1284"), ainda sem dump. A placa de disco rígido instalada tem firmware 2.06i, também sem dump, o que impede regravar qualquer uma das ROMs antes de extraí-las. Ele considerou projetar uma placa de extensão só com uma ROM ou comprar uma segunda placa-mãe, e sugeriu criar um substituto do binxelview para GNU/Linux.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #26494 · #26518 · #26522

19 mar 2023 Drive de disquete do KN5000 e erros no esquemático ★★

Com o painel consertado, Felipe começou os experimentos com disquetes, mas o drive do KN5000 riscou um disquete novo. Ao estudar o circuito no manual de serviço, encontrou nomes de pinos errados no controlador de disco. Erin atribuiu os erros a artefatos de escaneamento, como os de copiadoras Xerox que trocam caracteres.

Participantes: Felipe "Juca" Sanches, Erin Pinheiro 🐿

Ir para o início da conversa · mensagens-chave: #26564 · #26571

21 mar 2023 Gotek, FlashFloppy e o funcionamento de drives de disquete ★★

O novo drive de disquete funcionou no KN5000, mas o drive USB do laptop danificou o disco. Felipe encontrou um tutorial de modificação do Gotek para o KN5000 com um erro de alimentação, e Leonardo sugeriu o firmware FlashFloppy. Felipe passou a ler o código-fonte do FlashFloppy para entender drives de disquete a fundo, e foram citados o Glasgow e o Greaseweazle.

Participantes: Felipe "Juca" Sanches, Leonardo Roman, L., FTMaciel

Ir para o início da conversa · mensagens-chave: #26603 · #26612

Sétimo ano novembro de 2023 a outubro de 2024

O driver mostrou os primeiros gráficos e ganhou layout em SVG, e os PRs #12649 e #12902 foram aceitos no MAME; Felipe instalou pela primeira vez sem erros um firmware modificado e fez pela porta paralela o dump da Program ROM, da HDAE5000 e das ROMs table_data, onde fica o código de boot. Também mostrou um protótipo do port da VM do Another World, preparou uma palestra para a Tosconf e esboçou um driver do SX-WSA1R.

Driver do KN5000 no MAME no tema Engenharia reversa e emulação do Technics KN5000

O driver saiu da tela preta e mostrou os primeiros gráficos (PR #11835). Recebeu depois um layout do painel desenhado em SVG e passou a acender os LEDs que indicam a versão do firmware. O primeiro PR foi aceito no MAME (#12649), e depois também o PR #12902, com uma ROM antes sem dump. Um dos mantenedores do demodb.org perguntou pelo andamento da emulação e ofereceu ajuda.

3 dez 2023 Driver do Technics KN5000 no MAME sai da tela preta ★★

A partir do vídeo "The game that broke MAME", compartilhado por Robson França, Felipe "Juca" Sanches contou que havia voltado, duas ou três semanas antes, a implementar o driver de emulação do teclado Technics KN5000 no MAME e que o driver ainda mostrava apenas uma tela preta. Dois dias depois, informou que a emulação já mostrava uma tela acinzentada.

Participantes: Robson França, Felipe "Juca" Sanches, L.

Ir para o início da conversa · mensagens-chave: #28776 · #28777 · #28787

2 jan 2024 Primeiros gráficos do KN5000 no MAME e investigação da paleta ★★★

Felipe "Juca" Sanches anunciou que o driver do KN5000 no MAME mostrava gráficos pela primeira vez (PR #11835), com splash screens ligeiramente diferentes conforme a versão do firmware e um framebuffer de 320x240 a 8 bpp. Sobre os pixels azul-marinho estranhos na splash screen da versão 2, Pablo Vasques Bravo-Villalba sugeriu que o LCD real borrasse a imagem, Leonardo Roman sugeriu que a cor fosse originalmente outra e RicBit sugeriu uma cor transparente que mostra a borda ou um erro de off-by-one no emulador. Felipe testou deslocar a paleta em uma posição para cada lado e concluiu que não era off-by-one: as duas tentativas pioraram a imagem.

Participantes: Felipe "Juca" Sanches, Pablo Vasques Bravo-Villalba, Leonardo Roman, RicBit

Ir para o início da conversa · mensagens-chave: #28870 · #28987

9 mar 2024 Layout do painel do KN5000 em SVG para o MAME ★★★

Felipe desenhou em SVG o painel do Technics KN5000, com 1280x600 px e a tela em 320x240, ajustando as cores a partir de uma foto do teclado. Publicou o desenho no repositório KN5000_MAME_artwork e começou a convertê-lo em layout do MAME, que não aceita SVG diretamente. A primeira versão já mostrava o PNG com a tela posicionada; faltava declarar LEDs e botões.

Participantes: Felipe "Juca" Sanches, Lucas Alberto, Pablo Vasques Bravo-Villalba

Ir para o início da conversa · mensagens-chave: #30208 · #30228

11 mar 2024 KN5000 no MAME: LEDs do boot e versão do firmware ★★

Com o layout no MAME, Felipe mostrou as luzes do painel acesas durante o boot. Ligando o teclado com três botões pressionados, os LEDs indicam em binário a versão 10 do firmware, o que confirmou que a leitura dos botões estava certa. Ele contou que tem dumps de duas versões do firmware e que pretende extrair as ROMs restantes via MIDI, que RicBit lembrou ser uma serial 8N1.

Participantes: Felipe "Juca" Sanches, Pablo Vasques Bravo-Villalba, RicBit, Lucas Alberto

Ir para o início da conversa · mensagens-chave: #30239 · #30240 · #30247

22 jul 2024 Revisão do PR dos teclados Technics no MAME ★

Felipe compartilhou comentários da revisão do PR #11835 do MAME, com o esqueleto inicial dos drivers de teclados Technics.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #32502

17 ago 2024 Primeiro PR do Technics KN5000 aceito no MAME ★★★

Felipe anunciou o merge do PR #12649, o primeiro do driver do teclado Technics KN5000 no MAME, numa versão enxuta para passar na revisão de código. O restante será submetido aos poucos.

Participantes: Felipe "Juca" Sanches, Pedro de Medeiros 👾

Ir para o início da conversa · mensagens-chave: #32653 · #32696

30 ago 2024 Contato do site demodb.org sobre a emulação do KN5000 ★★

Felipe compartilhou uma mensagem de um entusiasta chinês que, com outras pessoas, mantém o demodb.org, base de dados de teclados eletrônicos e suas músicas de demonstração. Ele perguntou sobre o andamento da emulação do Technics KN5000 no MAME e ofereceu ajuda com arte e documentação.

Participantes: Felipe "Juca" Sanches, RicBit, Pablo Vasques Bravo-Villalba

Ir para o início da conversa

23 out 2024 PR do MAME com uma ROM do KN5000 antes sem dump ★★

Felipe "Juca" Sanches enviou ao MAME o PR #12902, que corrige uma ROM do KN5000 que constava como sem dump. O PR foi aceito.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #33332

Update de firmware, placas tijoladas e disquetes no tema Engenharia reversa e emulação do Technics KN5000

Felipe decodificou o formato dos disquetes de update de sistema e trocou a placa-mãe depois de corromper o firmware. Com Pedro de Medeiros, no Calango Hacker Clube, tentou sem sucesso adaptar um drive de disquete comum e instalou um Gotek, que salvou arquivos mas não instalou o update. Instalou pela primeira vez um firmware modificado sem o "Sound Name Error" e documentou a rotina de update. Tijolou duas placas, uma das quais voltou a funcionar, e passou a testar firmware por disquete dezenas de vezes por dia.

19 jan 2024 Formato dos disquetes de update do KN5000 decodificado e firmware corrompido ★★★

Felipe "Juca" Sanches decodificou o formato do arquivo de update de sistema do KN5000 e publicou o script que o decodifica e recodifica. Poucos minutos antes do teste com o arquivo bom, porém, danificou o mecanismo de update do seu teclado, que ficou com firmware corrompido. Ele também localizou o código da sub-CPU e começou a entender como esse código é enviado pela CPU principal durante o boot, com a ideia de escrever um programa para fazer dump da mask ROM de boot da sub-CPU. Pediu a Pedro de Medeiros e a Ramiro que verificassem a versão de firmware dos seus teclados na tela de diagnóstico, para mapear os dumps que faltam: ele não tem dump das versões 1, 2, 3 e 4, mas tem uma placa com a versão 3 ainda por dumpar. Felipe comentou com RicBit a CPU TLCS900, que descreveu como um Z80 de 32 bits a 20 MHz, usada no Neo Geo Pocket Color.

Participantes: Felipe "Juca" Sanches, Pedro de Medeiros 👾, RicBit, Pablo Vasques Bravo-Villalba

Ir para o início da conversa · mensagens-chave: #28948 · #28964

28 jan 2024 Troca de placa-mãe do KN5000 e busca pelas versões antigas de firmware ★★

Felipe "Juca" Sanches trocou a placa-mãe do seu KN5000, que voltou a funcionar, e guardou a placa com firmware corrompido para restaurar depois. Ele comprou uma placa anunciada como de firmware versão 2, com layout diferente; segundo ele, essa placa mais antiga tinha um DSP Analog Devices ADSP-21065L, de uma família que o MAME emula em parte. Suspeitou depois que fosse de um KN6500, e o vendedor confirmou que a foto do anúncio estava errada e cancelou a venda.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #29128 · #29131

15 fev 2024 KN5000 no Calango Hacker Clube: adaptação de drive de disquete e Gotek ★★★

Em Brasília, Felipe "Juca" Sanches e Pedro de Medeiros tentaram adaptar um drive de disquete comum ao KN5000 no Calango Hacker Clube, sem sucesso. Felipe documentou que o teclado usa os pinos reservados 4 e 6 do conector de floppy: o FD I/O, ligado à porta D, no lugar do disk change, e o FD H/D, ligado a uma interrupção. Guilherme Ranoya e Pablo Vasques Bravo-Villalba especularam sobre o motivo dessa alteração. Instalaram então um Gotek, que funcionou para salvar arquivos mas não para instalar o update de sistema. A hipótese de Felipe, sem certeza, é que o boot do teclado seja mais rápido que a montagem da imagem pelo Gotek.

Participantes: Felipe "Juca" Sanches, Pedro de Medeiros 👾, Guilherme Ranoya, Pablo Vasques Bravo-Villalba

Ir para o início da conversa · mensagens-chave: #29261 · #29265 · #29276

27 fev 2024 Primeira instalação de firmware modificado no KN5000 sem erros ★★★

De volta a São Paulo, Felipe "Juca" Sanches concluiu que o problema de MIDI visto em Brasília provavelmente se devia à chave COMPUTER, que não estaria na posição MIDI: ao mudá-la no seu teclado, o MIDI parou de funcionar. Ele instalou pela primeira vez um firmware modificado, com splash screen "Happy Hacking KN5000", sem o "Sound Name Error" da sub-CPU, o que, segundo ele, prova que o formato do update está resolvido. Também suspeitou que falhas anteriores viessem de disquetes formatados à mão, e verificou que gravar o disco com dd a partir da imagem do fabricante funciona.

Participantes: Felipe "Juca" Sanches, L., Pablo Vasques Bravo-Villalba, Pedro de Medeiros 👾

Ir para o início da conversa · mensagens-chave: #29289 · #29300 · #29303

3 mar 2024 KN5000: rotina de update de firmware, combos de botões e placa tijolada ★★★

Felipe localizou a rotina que desenha as mensagens da interface de update de firmware do KN5000, que são bitmaps e não strings ASCII, e, dentro dela, um trecho que lê da RAM os padrões de bits gravados pela rotina de leitura do painel de controle. Com um programa próprio carregado por arquivo RCM, descobriu um quarto combo de botões; ao religar o teclado com esse combo, a placa ficou tijolada. Em seguida simulou no MAME o buffer de estado do painel para ativar o Flash Memory Update, em HLE, porque o microcontrolador de varredura usa mask ROM. Depois trocou a mainboard e começou a mapear os bits de cada botão, com a meta de ter uma demo para a Tosconf de 23/março.

Participantes: Felipe "Juca" Sanches, L.

Ir para o início da conversa · mensagens-chave: #29424 · #29526 · #29531

4 mar 2024 KN5000: segunda placa tijolada e estratégias de recuperação ★★★

Felipe tijolou uma segunda placa do KN5000. O update de firmware ainda funcionava, mas o boot entrava em loop, provavelmente por causa de dados corrompidos na flash de custom rhythm memory. Ele considerou duas saídas via firmware modificado: uma rotina que regravasse essa flash a partir do Initial Data Disk, ou um bootloader carregado de disquete. Ao documentar a rotina de update, identificou uma string_compare e a forma como os arquivos do disquete de instalação são tratados ("DATA FILE 1/2", formato PCK). Preferiu não dessoldar a flash paralela de 2 MB. Em 9/março anunciou que a placa voltou a funcionar.

Participantes: Felipe "Juca" Sanches, RicBit, L., Lucas Alberto

Ir para o início da conversa · mensagens-chave: #29676 · #29767 · #30136

31 mar 2024 Placa do KN5000 com adesivo de firmware versão 1 ★★

Felipe percebeu que a placa do KN5000 que comprou de Ronaldo Verardo tem um adesivo indicando firmware versão 1 e pretende refazer o dump dos chips dessoldados para conferir. Ronaldo disse que nunca atualizou o firmware.

Participantes: Felipe "Juca" Sanches, Ronaldo Verardo

Ir para o início da conversa · mensagens-chave: #30702 · #30705

6 ago 2024 Testes de firmware do KN5000 por disquete ★

Felipe contou que vinha instalando firmware modificado no Technics KN5000 por disquete, dezenas de vezes por dia. Planeja um software que envie código executável ao teclado pelo cabo MIDI.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #32609

Dump de ROMs: MIDI, hexdump e porta paralela no tema Engenharia reversa e emulação do Technics KN5000

As primeiras tentativas foram o SysEx por MIDI e uma tela de hexdump. Depois, Felipe analisou a ppkn50.dll para inferir o protocolo da porta paralela da HDAE5000. Com código injetado no boot, fez pela porta paralela o dump da Program ROM; fez também o dump da HDAE5000 v2.06i e obteve o par de ROMs table_data, que, segundo concluiu depois, contêm o código de boot (/CS2). Planejou em seguida o dump da ROM de boot da subcpu.

3 fev 2024 Tentativa de dump de ROM do KN5000 via MIDI SysEx ★★

Felipe "Juca" Sanches anunciou experimentos com o SysEx Bulk Dump do KN5000 para tentar fazer dump de ROM via MIDI. A ideia é colocar valores não convencionais na memória para que algum trecho dos dados enviados seja executado, talvez começando por dados aleatórios para ver se algo trava o sistema e afunilando a busca a partir daí. Ele indicou a ferramenta Ctrlr e pediu sugestões.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #29158 · #29161 · #29166

1 mar 2024 Tela de hexdump no Technics KN5000 ★★

Felipe "Juca" Sanches publicou um vídeo com uma tela de hexdump do teclado Technics KN5000. Quando kretcheu sugeriu fazer OCR das telas, ele explicou que a ROM a extrair tem 0x80000 bytes, o que daria 4096 telas, e que o método de salvar em disquete grava só 0x1000 bytes por vez. Disse que seguiria procurando uma solução mais prática.

Participantes: Felipe "Juca" Sanches, Pablo Vasques Bravo-Villalba, kretcheu, Pedro de Medeiros 👾

Ir para o início da conversa · mensagens-chave: #29344 · #29355 · #29356

18 set 2024 Engenharia reversa do protocolo da porta paralela do KN5000 (ppkn50.dll) ★★★

Felipe "Juca" Sanches levantou o esquemático da placa de extensão para HD do KN5000 e montou um cabo que liga a porta paralela a um Arduino. A ideia era fazer o dump de ROMs e criar um monitor com peek/poke. Ele analisou a ppkn50.dll do programa HD-TechManager5000 com strings, winedump e objdump, e L. sugeriu usar o Ghidra. Pela análise, Felipe montou uma tabela dos valores numéricos que, segundo supõe, identificam cada operação do protocolo com a placa HDAE5000. Ele também notou que está reconstruindo a forma de um cabo sem documentação que nunca teve em mãos.

Participantes: Felipe "Juca" Sanches, L., Pedro de Medeiros 👾, Pablo Vasques Bravo-Villalba, RicBit

Ir para o início da conversa · mensagens-chave: #32999 · #33013 · #33033

20 set 2024 Dump das ROMs do KN5000 pela porta paralela ★★★

Felipe "Juca" Sanches injetou código no boot do KN5000 para enviar bytes da ROM pela porta paralela. O dump de 512 KB da Program ROM bateu com o checksum de um dump que ele tinha feito por outros métodos. Ele fez depois o dump da placa HDAE5000, em uma versão (v2.06i) mais recente que as que já tinha. Também obteve o par de ROMs "table_data", do qual só tinha a ROM ímpar, e com isso o emulador passou a mostrar a tela de erro de comunicação entre as CPUs. Para passar dessa tela, faltam pelo menos o micro-DMA no core TLCS900 e o dump da mask ROM de boot da subcpu.

Participantes: Felipe "Juca" Sanches, Pedro de Medeiros 👾, Pablo Vasques Bravo-Villalba, L., Ronaldo Verardo, Leonardo Roman

Ir para o início da conversa · mensagens-chave: #33043 · #33052 · #33069

  • Dump da placa HDAE5000 feito pela porta paralela (fearless_dump.bin)
23 set 2024 Código de boot do KN5000 nas ROMs table_data (/CS2) ★★★

Felipe "Juca" Sanches investigou uma rotina que parecia inalcançável e, no esquemático, encontrou resistores que permitem trocar os chip-enables das ROMs. Ele constatou que as ROMs table_data usam /CS2 e que, pelo datasheet, o boot acontece por padrão nesse chip select; portanto são elas que contêm o código de boot. Para emular isso, será preciso implementar mapa de memória dinâmico no core TLCS900 do MAME. Se for viável de forma segura, a descoberta também pode permitir apagar a flash e liberar 2 MB para código próprio.

Participantes: Felipe "Juca" Sanches, RicBit, L., Erin Pinheiro 🐿, Pablo Vasques Bravo-Villalba

Ir para o início da conversa · mensagens-chave: #33149 · #33157 · #33159

2 out 2024 Plano para o dump da ROM de boot da subcpu do KN5000 ★★

Felipe "Juca" Sanches descreveu como pretende fazer o dump da ROM de boot de 128 KB da subcpu. O payload enviado à subcpu seria alterado para ler 0xFE0000-0xFFFFFF e mandar os bytes à maincpu pelos latches de comunicação entre as CPUs, e a maincpu os repassaria à porta paralela. As dificuldades são as interrupções geradas pelos latches e algumas escritas em registradores de controle que o disassembler dele ainda não decodifica e que ele suspeita configurarem o micro-DMA.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #33263 · #33264 · #33266

Disassembly do firmware no tema Engenharia reversa e emulação do Technics KN5000

L. e RicBit sugeriram formas de acelerar o disassembler em Python de Felipe, que levava mais de meia hora para processar o binário de 2 MB. Com um script de RicBit e sugestões de L., Felipe decodificou um bitmap de mensagem da rotina de update (224x22). Pedro de Medeiros indicou um módulo de TLCS-900/H para o Ghidra.

6 dez 2023 Desempenho do disassembler em Python para o firmware do KN5000 ★★

O disassembler de Felipe "Juca" Sanches levava mais de meia hora para processar o binário de 2 MB do KN5000. A demora veio do uso de símbolos de depuração encontrados no firmware como pontos de entrada adicionais, o que aumentou a cobertura. A análise também encontrou 450 jump tables ainda não tratadas. L. e RicBit sugeriram usar o Python 3.12, structural pattern matching, functools.cache ou lru_cache(maxsize=None) e itertools, e procurar trechos acidentalmente quadráticos.

Participantes: Felipe "Juca" Sanches, L., RicBit

Ir para o início da conversa · mensagens-chave: #28799 · #28800 · #28812

5 set 2024 Fonte Z80 Sans e módulo do Ghidra para TLCS-900/H ★★

Pedro de Medeiros compartilhou a fonte OpenType Z80 Sans, que faz o disassembly de instruções Z80. Também indicou a Felipe "Juca" Sanches um módulo de processador TLCS-900/H para o Ghidra, e Felipe disse que iria testá-lo.

Participantes: Pedro de Medeiros 👾, L., Felipe "Juca" Sanches, Anne Isabelle

Ir para o início da conversa · mensagens-chave: #32970

23 set 2024 Decodificação dos bitmaps de mensagens do firmware do KN5000 ★★

Felipe "Juca" Sanches pediu ajuda para decodificar um bitmap monocromático de 616 bytes com a mensagem "FD TO FLASH MEMORY". A resolução certa era 224x22. RicBit escreveu um script em Python que converte um hexdump em PBM, e L. sugeriu abrir os dados no GIMP como raw. Felipe queria ver as imagens para trocar ponteiros por nomes no disassembly da rotina de atualização de firmware. Ele também criou um repositório git com o disassembly da Program ROM, para compartilhar de forma privada.

Participantes: Felipe "Juca" Sanches, RicBit, L., Pablo Vasques Bravo-Villalba, Pedro de Medeiros 👾

Ir para o início da conversa · mensagens-chave: #33088 · #33104 · #33130

Homebrew no KN5000 no tema Engenharia reversa e emulação do Technics KN5000

Felipe rodou um programa próprio que desenha na VGA a partir da ROM da placa de extensão. Depois mostrou um protótipo do port da VM do Another World em assembly TLCS-900 (repositório kn5000_homebrew), que ainda entrava em loop infinito na troca de threads. Leonardo Roman perguntou sobre portar jogos de Neo Geo Pocket para o teclado.

21 jan 2024 Programa homebrew na placa de extensão do KN5000 e conector da HD-AE5000 ★★

Felipe "Juca" Sanches rodou um pequeno programa, montado à mão, que desenha na VGA do KN5000 a partir da ROM da placa de extensão. Sobre a imagem resultante, disse depois que a paleta de cores estava errada. Ele indicou um assembler para a CPU e, no dia seguinte, contou que já o usava com sucesso. Planejou uma PCB com RAM e EPROM ou flash para carregar programas, regravar a flash do sistema e rodar um monitor serial. Também procurou identificar o conector da placa HD-AE5000: L. indicou um guia de identificação, Pablo Vasques Bravo-Villalba sugeriu um VHDCI e Felipe concluiu que parecia ser um Molex EBBI 50D. Hugo perguntou se Felipe tinha um emulador USB de disquete para o KN5000, e Ramiro Polla brincou que Felipe já tinha comprado todos os KN5000 do Brasil.

Participantes: Felipe "Juca" Sanches, L., Pablo Vasques Bravo-Villalba, Hugo (Agaelebê), Ramiro Polla

Ir para o início da conversa · mensagens-chave: #28997 · #29021

5 abr 2024 Port da VM do Another World para o Technics KN5000 ★★★

Felipe mostrou um protótipo do port da VM do Another World para o KN5000, escrito em assembly TLCS-900 por falta de compilador C para essa CPU e ainda dependente de hacks no firmware. Corrigiu a rasterização de polígonos, a paleta e a renderização de strings, publicou o código no repositório kn5000_homebrew (demos/anotherworld) e encontrou um bug na exibição do disassembly TLCS-900 no debugger do MAME. Em 18/abril relatou um loop infinito na troca de threads da VM e planejou comparar a sequência de task switching com a implementação HLE no MAME para achar o ponto em que o port diverge.

Participantes: Felipe "Juca" Sanches, Pablo Vasques Bravo-Villalba, Leonardo Roman, L., RicBit, Hugo (Agaelebê)

Ir para o início da conversa · mensagens-chave: #30815 · #30838 · #30995

4 out 2024 Vídeos de Felipe, divulgação do projeto Technics, Mac SE/30 e Neo Geo Pocket ★★

Felipe "Juca" Sanches enviou um vídeo gravado em três partes, e Pablo Vasques Bravo-Villalba comentou o conteúdo em áudio. Clemar Folly Jr sugeriu divulgar os avanços do projeto Technics em blogs, no Hackaday ou no YouTube. A partir de um vídeo compartilhado por L., Clemar comentou que os chips custom impedem reproduzir o Mac SE/30 sem placa doadora. Pablo sugeriu reimplementá-los em FPGA ou CPLD. Leonardo Roman perguntou sobre portar jogos de Neo Geo Pocket para o KN5000. Felipe avaliou que traduzir assembly x86 seria mais fácil do que emular o vídeo do Neo Geo Pocket, apesar de este usar a mesma CPU do KN5000.

Participantes: L., Felipe "Juca" Sanches, Pablo Vasques Bravo-Villalba, Clemar Folly Jr, Leonardo Roman

Ir para o início da conversa · mensagens-chave: #33274 · #33283 · #33291

Palestra, divulgação e arquivamento no tema Engenharia reversa e emulação do Technics KN5000

Felipe preparou uma palestra sobre o KN5000 para a Tosconf e pediu ajuda para arquivar a página de downloads de um site sobre teclados Technics antes que saísse do ar. Clemar Folly Jr sugeriu divulgar os avanços do projeto.

22 mar 2024 Palestra sobre o KN5000 na Tosconf ★★

Felipe preparou os slides da palestra sobre o KN5000 na Tosconf, conferência do Laboratório Hacker de Campinas, e prometeu repeti-la no YouTube caso não fosse gravada. Depois do evento voltou com um tubo CRT e passou a pensar em projetar um gabinete cocktail.

Participantes: Felipe "Juca" Sanches, Shideravan, L.

Ir para o início da conversa · mensagens-chave: #30557 · #30596

18 set 2024 Pedido de ajuda para arquivar os downloads do site Technics Music Service ★★

Felipe "Juca" Sanches pediu ajuda para arquivar todo o conteúdo da página de downloads do site da CA-Software sobre teclados Technics antes que o site saia do ar. RicBit sugeriu automatizar o trabalho com um crawler e ofereceu como base um script que já tinha escrito para outro site.

Participantes: Felipe "Juca" Sanches, RicBit

Ir para o início da conversa · mensagens-chave: #32994 · #32997

4 out 2024 Vídeos de Felipe, divulgação do projeto Technics, Mac SE/30 e Neo Geo Pocket ★★

Felipe "Juca" Sanches enviou um vídeo gravado em três partes, e Pablo Vasques Bravo-Villalba comentou o conteúdo em áudio. Clemar Folly Jr sugeriu divulgar os avanços do projeto Technics em blogs, no Hackaday ou no YouTube. A partir de um vídeo compartilhado por L., Clemar comentou que os chips custom impedem reproduzir o Mac SE/30 sem placa doadora. Pablo sugeriu reimplementá-los em FPGA ou CPLD. Leonardo Roman perguntou sobre portar jogos de Neo Geo Pocket para o KN5000. Felipe avaliou que traduzir assembly x86 seria mais fácil do que emular o vídeo do Neo Geo Pocket, apesar de este usar a mesma CPU do KN5000.

Participantes: L., Felipe "Juca" Sanches, Pablo Vasques Bravo-Villalba, Clemar Folly Jr, Leonardo Roman

Ir para o início da conversa · mensagens-chave: #33274 · #33283 · #33291

Technics SX-WSA1R no tema Sintetizadores e instrumentos musicais

O sintetizador tem um painel parecido com o do KN5000 e usa duas CPUs TLCS-900. Felipe encontrou dumps das quatro ROMs soquetadas, comprou o manual de serviço e escreveu um esboço de driver no MAME.

17 ago 2024 Technics SX-WSA1R: ROMs, manual de serviço e esboço de driver no MAME ★★★

Felipe notou que o sintetizador Technics SX-WSA1R (1995) tem um painel parecido com o do KN5000 e usa duas CPUs TLCS-900 (TMP95C061). Encontrou dumps das quatro ROMs soquetadas, comprou e compartilhou o manual de serviço e viu que o boot da CPU principal tem estrutura quase igual à do KN5000. A ideia é usar o WSA1R para entender o protocolo entre as CPUs do KN5000. Felipe também escreveu um esboço de driver no MAME, que já passa nos autotestes, e desenhou a arte do painel em SVG.

Participantes: Felipe "Juca" Sanches, L., Leonardo Roman

Ir para o início da conversa · mensagens-chave: #32663 · #32667 · #32708

Oitavo ano novembro de 2024 a outubro de 2025

Patches na ROM permitiram exibir telas internas no emulador, a ROM de boot da subCPU foi extraída pela serial (dump ainda incompleto) e a variante TMP94C241 foi aceita no MAME, seguida do início do micro DMA, de um rascunho da porta serial e do PR #14068 com a HD-AE5000, aceito em setembro. Felipe compilou o LLVM e avaliou caminhos para um compilador C para TLCS-900.

Patches na ROM e sequência de boot no tema Emulação do Technics KN5000

Patches na program ROM enganaram o self-test do painel e forçaram a exibição de telas internas pelo ID, e dezenas delas foram registradas. Depois, o script de patching do repositório kn5000_homebrew foi refatorado. Felipe disse que a VM do Another World rodando no KN5000 emulado já era quase realidade, ainda "extremamente bugada".

10 dez 2024 KN5000: patches na ROM e telas internas por ID ★★★

Felipe "Juca" Sanches avançou a sequência de boot do emulador do KN5000 no MAME com patches na program ROM. Um deles engana o self-test dos LEDs e botões do painel e elimina o erro de comunicação com os MCUs do painel. Outro força telas internas pelo ID gravado no endereço FB7863. Ele registrou dezenas de telas: demonstrações, equalizador, testes de drive de disquete, de LCD e de varredura de teclas. O objetivo declarado é entender o boot para dispensar esses hacks no emulador.

Participantes: Felipe "Juca" Sanches, L., Pablo Vasques Bravo-Villalba

Ir para o início da conversa · mensagens-chave: #33503 · #33511

5 fev 2025 VM do Another World rodando no KN5000 emulado ★★

Felipe "Juca" Sanches comentou seus projetos recorrentes e disse que a VM do Another World rodando no KN5000 emulado no MAME já é quase realidade, ainda "extremamente bugada". Perguntado por Shideravan, explicou que o teclado é um computador com controlador VGA.

Participantes: Hugo (Agaelebê), Felipe "Juca" Sanches, L., Shideravan

Ir para o início da conversa · mensagens-chave: #34286 · #34297 · #34298

25 fev 2025 Refatoração do script de patches do KN5000 ★★

Felipe "Juca" Sanches refatorou o script de patching das ROMs do Technics KN5000 no repositório kn5000_homebrew.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa

Dump da ROM de boot da subCPU no tema Emulação do Technics KN5000

Felipe trocou um plano complexo de dump pela ideia de fazer a subCPU enviar sua mask ROM pela porta serial do teclado. Documentou o disassembly do payload e, em 20/01, obteve um dump que parecia bom. Nas sessões no Calango Hacker Clube, trabalhou nos handlers de interrupção da serial para que o payload recebesse comandos e fizesse dumps da bootrom.

13 jan 2025 Dump da ROM de boot da subCPU do KN5000 ★★★

Felipe "Juca" Sanches trocou um plano complexo de dump por uma ideia mais direta: fazer a subCPU enviar sua mask ROM pela porta RS-422 "computer interface" do teclado. Para isso, encomendou um conversor e conectores. Constatou que a carga do payload e a comunicação entre as CPUs dependem do micro DMA, ainda não emulado no core TLCS-900 do MAME. Documentou o disassembly do payload da subCPU e, em 20/01, obteve um dump que parecia bom.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #33829 · #33947

17 fev 2025 Sessões de hacking do KN5000 no Calango Hacker Clube ★★

Felipe "Juca" Sanches se reuniu no Calango Hacker Clube, em Brasília, para continuar o trabalho de emulação no MAME. Iniciou o rebase do PR do KN5000 e passou a resolver os conflitos. Numa sessão, trabalhou no patch dos handlers de interrupção TX/RX da serial #1 da subCPU, para que o payload receba comandos do laptop e faça dumps da bootrom. Em seguida compartilhou o link do PR #13386.

Participantes: Felipe "Juca" Sanches, Shideravan

Ir para o início da conversa · mensagens-chave: #34538 · #34539

TMP94C241 no MAME: merge, micro DMA e serial no tema Emulação do Technics KN5000

Felipe dividiu o código do KN5000 em PRs menores, e o da variante TMP94C241, implementada a partir do datasheet, foi aceito após várias revisões. Depois ele começou a implementar o micro DMA, que deu os primeiros sinais de funcionamento, e passou a unificá-lo com o da variante do NeoGeo Pocket. Também abriu um PR de rascunho com a porta serial usada pelo painel e pelo MIDI.

12 jan 2025 KN5000: PRs fatiados para o MAME ★★

Felipe "Juca" Sanches relatou a dificuldade de fazer o PR do KN5000 ser aceito no MAME e passou a dividir o código em PRs menores. O PR de melhorias no layout interno foi aceito, e ele apontou o da variante TMP94C241 como o mais importante.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #33802

17 fev 2025 Merge da variante TMP94C241 no MAME ★★★

Após várias revisões e rebases, o PR com a variante TMP94C241 do TLCS-900, implementada a partir do datasheet, foi aceito no MAME. Com isso, o driver do KN5000 avança mais no boot. Felipe "Juca" Sanches explicou que ainda tem commits pendentes, entre eles a declaração da ROM da subCPU. O dump, ainda incompleto, foi obtido com um patch no payload que envia os dados pela serial da própria subCPU.

Participantes: Felipe "Juca" Sanches, Shideravan, RicBit, Pedro de Medeiros 👾

Ir para o início da conversa · mensagens-chave: #34463 · #34468 · #34474

22 fev 2025 Micro DMA no core TMP94C241 do MAME ★★

Felipe "Juca" Sanches começou a implementar o micro DMA no core TMP94C241, que deu os primeiros sinais de funcionamento. Passou então a unificá-lo com a implementação existente da variante usada no NeoGeo Pocket.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #34550

26 out 2025 Porta serial do TMP94C241 para o Technics KN5000 ★★

Felipe abre um PR de rascunho com a implementação da porta serial do TMP94C241, usada pelo painel de controle e pelo MIDI do Technics KN5000.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa

Barramento de expansão e placa HD-AE5000 no tema Emulação do Technics KN5000

Felipe escaneou o guia de instalação da HD-AE5000, placa opcional de disco rígido para o KN5000, e encontrou um desenho do teclado num CD-ROM de 1997. O PR #14068, com o barramento de expansão e a placa, foi aceito em 4 de setembro.

1 mar 2025 Manual escaneado da placa HD-AE5000 ★★

Felipe "Juca" Sanches escaneou e compartilhou o guia de instalação da HD-AE5000, placa opcional de disco rígido de terceiros para o Technics KN5000. Informou que tem mais três ou quatro documentos sobre o tema para escanear.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #34601

  • Guia de instalação escaneado da placa HD-AE5000 (HD-AE5000 installation guide.pdf)
11 abr 2025 Ilustração do KN5000 em CD-ROM de 1997 ★

Felipe "Juca" Sanches encontrou um desenho do Technics KN5000 num CD-ROM de 1997 do Internet Archive, acessível pelo discmaster.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa

18 ago 2025 Barramento de expansão do Technics KN5000 e placa HD-AE5000 ★★

Felipe abre o PR #14068, que adiciona ao MAME o barramento de expansão do Technics KN5000 e a placa opcional HD-AE5000. O PR é aceito em 4 de setembro.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #35477

Compiladores para o TLCS-900 no tema Emulação do Technics KN5000

Felipe compilou o LLVM pela primeira vez e disse que o próximo passo seria tentar escrever um backend para o TLCS-900. Mais tarde perguntou se seria mais simples portar o compilador C do RetrOS-32, e L. lembrou que o SDCC parece suportar o TLCS-90.

20 nov 2024 Compilação do LLVM e plano de backend para TLCS-900 ★★

Felipe "Juca" Sanches compilou o LLVM pela primeira vez, com os backends x86 e M68k, e disse que o próximo passo seria tentar escrever um backend para a CPU TLCS-900 do KN5000. Encontrou instruções 68000 que o llvm-objdump marcava como unknown, mas que o debugger do MAME decodificava, e disse ter identificado a causa. L. recomendou usar Ninja em vez de make.

Participantes: Felipe "Juca" Sanches, L.

Ir para o início da conversa · mensagens-chave: #33398 · #33400 · #33406

16 jul 2025 Compilador C para TLCS-900 e o Technics KN5000 ★

A partir do RetrOS-32, compartilhado por Pedro, Felipe pergunta se seria mais fácil portar o compilador C desse sistema para TLCS-900 e rodar um SO no Technics KN5000 do que portar o LLVM ou o GCC. L. lembra que o SDCC parece já suportar o TLCS-90 (não o 900), como possível ponto de partida.

Participantes: Pedro de Medeiros 👾, Felipe "Juca" Sanches, L.

Ir para o início da conversa · mensagens-chave: #35215 · #35216

Nono ano novembro de 2025 a outubro de 2026

O disassembly do KN5000 chegou perto de 100% de byte-matching e foi documentado no site KN5000-docs; no MAME entraram a porta serial, o painel interativo (MAME 0.288), a demo com som e a data wheel, e Felipe emulou a HDAE5000. O Another World rodou no teclado emulado e o Mines, compilado com um backend LLVM para TLCS-900, deu os primeiros sinais de vida. Felipe avançou com o Claude na engenharia reversa do DSP uPD6383GF, levou o WSA1R e o KN7000 ao MAME, fez o dump do firmware v1.3 do KN7000 e rodou nele jogos, um ProTracker e um leitor de PDF de partituras.

Disassembly e byte-matching das ROMs do KN5000 no tema Teclados Technics: KN5000, KN7000 e outros modelos

A remontagem da ROM do KN5000 passou de 69,65% para 99,94% de byte-matching; depois, com o Claude Code, os bytes errados caíram de 1310 para 177, ainda sem revisão. No caminho foram extraídos imagens BMP e um XML da demo e encontrado um registrador que Felipe suspeita habilitar o vídeo VGA. A documentação foi publicada no site KN5000-docs.

7 dez 2025 Registrador que habilita o vídeo VGA do KN5000 ★★

Felipe lembrou que um código de desenho na placa VGA do KN5000 funcionava no MAME mas deixava a tela preta no aparelho real. No disassembly manual da Program ROM ele encontrou um registrador que suspeita habilitar o vídeo, ainda sem teste no hardware real.

Participantes: Felipe "Juca" Sanches, Pablo Vasques Bravo-Villalba, L.

Ir para o início da conversa · mensagens-chave: #36590 · #36594 · #36596

15 dez 2025 Remontagem byte a byte da ROM do KN5000 ★★★

Felipe passou a remontar o disassembly da ROM versão 10 do KN5000 (2 MB) e a comparar o resultado byte a byte com a original. Os erros de montagem no assembler AS caíram de 63 mil para zero, e o byte-matching subiu de 69,65% para 98,53%; o repositório kn5000-roms-disasm foi tornado público. Ele encontrou uma divergência entre builds do assembler AS na instrução CALL T, XHL e usou macros para reduzir 11 mil linhas. Ao estagnar em 99,60% na ROM da maincpu, passou a fazer o mesmo trabalho com o payload executável da subcpu e anunciou que chegaria a 100% e começaria uma terceira ROM.

Participantes: Felipe "Juca" Sanches, Pablo Vasques Bravo-Villalba, L., Ramiro Polla

Ir para o início da conversa · mensagens-chave: #36692 · #36712 · #36747

5 jan 2026 Imagens BMP e XML da demo na ROM table_data do KN5000 ★★

Felipe extraiu da ROM table_data do KN5000 seis arquivos BMP usados na animação de demonstração e mostrou os comandos dd usados. A ROM principal referencia as artes pelo nome do arquivo, por meio de uma tabela de structs. Ele também encontrou um XML de 1997 que descreve a sequência da demo.

Participantes: Felipe "Juca" Sanches, L., Pablo Vasques Bravo-Villalba

Ir para o início da conversa · mensagens-chave: #36784 · #36795 · #36803

  • Uma das seis imagens BMP (FTBMP01 a FTBMP06) extraídas da ROM table_data (FTBMP01.BMP)
17 jan 2026 Claude Code no byte-matching da ROM do KN5000 ★★

Felipe testou o Claude Code para avançar o byte-matching da ROM do KN5000, que já estava em 99,94%. Três sessões reduziram os bytes errados de 1310 para 177, ainda sem revisão. Ele estimou o custo em pouco mais de um centavo por byte corrigido, e RicBit sugeriu rodar modelos localmente com LM Studio.

Participantes: Felipe "Juca" Sanches, RicBit

Ir para o início da conversa · mensagens-chave: #36906 · #36908 · #36913

25 jan 2026 Site KN5000-docs e documentação da engenharia reversa com Claude Code ★★

Felipe publicou o site KN5000-docs, com a documentação da engenharia reversa do KN5000 e uma página sobre a reconstrução das ROMs. Ele relatou que Claude Code, manuais de serviço, datasheets e o issue tracker Beads formam um fluxo de disassembly, engenharia reversa e documentação. Também mostrou imagens em que os gráficos passam a aparecer com a paleta correta. Erin Pinheiro comentou o fato de ele pagar por software de código fechado.

Participantes: Felipe "Juca" Sanches, Erin Pinheiro 🐿, Hugo (Agaelebê)

Ir para o início da conversa · mensagens-chave: #37180 · #37221

6 mar 2026 Byte-matching do ROM-set do KN5000 e do Another World ★★

Felipe "Juca" Sanches mostrou o avanço do disassembly das ROMs do Technics KN5000, compartilhou o tutorial do App Loader e anunciou a passagem de assembly para C no processo de byte-matching do ROM-set. Também mostrou o Another World antes de atingir 100% de byte-match.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #37728 · #37744 · #37766

22 mar 2026 Modelos de IA para código e regras de memória para agentes ★★

Ismael Luceno comparou modelos abertos e fechados para escrever e traduzir código e propôs um repositório comum de regras de memória para agentes; publicou suas regras para o Kimi K2.5. Felipe "Juca" Sanches apontou o CLAUDE.md do disassembly do KN5000 e compartilhou uma especulação do Claude de que o subsistema de diagnóstico 'HAMA' se refira a Hamamatsu.

Participantes: Ismael Luceno, Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #37820 · #37825

KN5000 no MAME: layout, painel, HDAE5000 e som no tema Teclados Technics: KN5000, KN7000 e outros modelos

Felipe refez o layout do KN5000 e trabalhou na porta serial do painel, cujo PR foi aceito. O painel de controle interativo também foi aceito e entrou no MAME 0.288. Ele ainda emulou a HDAE5000 e a porta paralela, e teve aceitos os PRs da demo 'Feature Presentation' e da data wheel.

20 nov 2025 Novo layout do Technics KN5000 no MAME e porta serial do painel ★★

Felipe refez o layout interno do KN5000 no MAME com formas de botão reaproveitadas em SVG e duas vistas, compacta e close-up da tela. O pull request foi aceito. Em seguida voltou ao rascunho da porta serial do TMP94C241, usada pelo painel de controle e pelo MIDI, e pediu ajuda para entendê-la.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #36437 · #36441 · #36460

26 nov 2025 Vídeos: layouts Access Virus e avanços no KN5000 em novembro ★★

Felipe publicou dois vídeos: um sobre os layouts gráficos dos sintetizadores Access Virus no MAME e outro sobre os avanços de novembro de 2025 na emulação do Technics KN5000.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #36486

9 dez 2025 Protocolo serial do painel do KN5000 e projetos de Natal ★★

Felipe disse estar perto de entender o protocolo serial do painel de controle do KN5000 e que os detalhes estão num repositório privado do Arqueologia Digital. Ele lembrou projetos de dezembros anteriores, como a emulação da VM de Another World no MAME, e o sintetizador de Guido Stolfi associado ao Patinho Feio, que ainda não foi emulado.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #36624 · #36633

14 fev 2026 Painel de controle interativo do KN5000 no MAME ★★★

Com o Claude Code, os LEDs e botões do painel do KN5000 passaram a funcionar no MAME, que já permite navegar pelos menus. Felipe descreveu seu fluxo de trabalho com logs e testes manuais e planejou uma série de PRs pequenos para o MAME; o som e os DSPs ainda estavam em investigação. RicBit comparou com seu método de scripts Tcl no openMSX e documentação verificada por testes.

Participantes: Felipe "Juca" Sanches, L., Hugo (Agaelebê), RicBit

Ir para o início da conversa · mensagens-chave: #37497 · #37510 · #37546

28 fev 2026 Vídeo do KN5000 no MAME com painel interativo ★★

Felipe publicou um vídeo do Technics KN5000 emulado no MAME com o painel de controle interativo.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa

18 mar 2026 PRs do KN5000 no MAME: porta serial e painel de controle interativo ★★★

Felipe "Juca" Sanches anunciou a aceitação do PR da porta serial do TMP94C241 no MAME, após cerca de três semanas, e depois abriu e teve aceito o PR do painel de controle interativo do Technics KN5000. O próximo passo anunciado foi a engenharia reversa dos chips de som.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #37824 · #37863

30 mar 2026 Emulação da placa HDAE5000 e conexão do KN5000 a um PC no MAME ★★★

Felipe "Juca" Sanches emulou a placa de disco rígido HDAE5000, formatou uma imagem CHD e implementou a porta paralela, conectando o KN5000 a um 486 com Windows 95 no MAME, e teve incluído no MAME o suporte ao modo bidirecional PS/2 no pc_lpt. A versão completa do TechManager5000 não rodou por falta de um componente OCX do VB; L. sugeriu colocar o OCX na pasta do programa, testar o Windows 98 e usar o Dependency Walker, e Pablo sugeriu o runtime instalável do VB4 e recebeu a imagem do disco para tentar. O grupo comentou as mensagens mal traduzidas do software.

Participantes: Felipe "Juca" Sanches, L., Pablo Vasques Bravo-Villalba, Ramiro Polla

Ir para o início da conversa · mensagens-chave: #37929 · #37977

28 mai 2026 MAME 0.288 com o KN5000 interativo ★★

Felipe "Juca" Sanches anunciou o MAME 0.288, primeira versão com o KN5000 interativo, ainda sem som, e pediu ajuda para emular os chips de som.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #39020

6 ago 2026 KN5000: demo 'Feature Presentation' e repositório público ★★

Felipe compartilha um vídeo do KN5000 no MAME rodando a demo 'Feature Presentation', em que L. nota que agora há som. Ele também divulga o repositório público com o trabalho em andamento sobre os teclados Technics.

Participantes: Felipe "Juca" Sanches, L.

Ir para o início da conversa · mensagens-chave: #39940

11 ago 2026 PRs do KN5000 no MAME (data wheel e Feature Presentation) ★★

Felipe abre e acompanha dois pull requests do KN5000 no MAME: o PR 15878, que faz a demo 'Feature Presentation' rodar e foi merged em 17/08, e o PR 15919, que emula a data wheel TEMPO/PROGRAM e foi merged em 31/08.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #40163 · #40308

Another World e homebrew com LLVM no KN5000 no tema Teclados Technics: KN5000, KN7000 e outros modelos

A VM de Another World foi portada para TLCS-900 e roda a demo inteira no KN5000 emulado. Um backend TLCS-900 para o LLVM, criado com IA, permitiu os primeiros sinais de vida do Mines no teclado. Felipe também analisou conteúdo abandonado no bytecode do Another World.

3 dez 2025 VM de Another World portada para TLCS-900 no KN5000 ★★

Depois de um vídeo com a abertura de Another World no MSX, L. sugeriu compilar a VM do jogo para Z80. Felipe mostrou que já havia portado grande parte da VM para assembly de TLCS-900, a fim de rodá-la no teclado KN5000, e disse que o emulador do KN5000 no MAME já pode ajudar a concluir o port.

Participantes: Pedro de Medeiros 👾, L., Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #36579 · #36580

9 fev 2026 Another World rodando no KN5000 ★★★

Com o Claude Code, Felipe completou o port da VM de Another World para o KN5000, partindo da sua implementação HLE do MAME e de uma tentativa incompleta em assembly TLCS-900. A demo passou a rodar inteira sem glitches no MAME, e o código foi publicado com um site do projeto. O código compila como ROM principal ou como extensão da HDAE5000, mas só a primeira opção foi testada. Dois dias depois, Felipe disse que faltavam apenas o som e o arquivo de instalação em LZSS, além do teste no hardware real.

Participantes: Felipe "Juca" Sanches, RicBit, Toy, Leonardo Roman

Ir para o início da conversa · mensagens-chave: #37431 · #37454 · #37455

18 fev 2026 Backend TLCS-900 para o LLVM ★★★

Felipe criou com IA, em um único dia de vibe-coding, um backend TLCS-900 para o LLVM, o que dá um compilador C para o KN5000. Ele planejou usar o port do jogo Mines como primeiro homebrew rodando junto do firmware original na HDAE5000. Os passos seguintes seriam um loader pelo disco rígido com FAT e o upload de binários pela porta serial. Macabeus recomendou revisar o código gerado e testar cenários reais em vez de mocks.

Participantes: Felipe "Juca" Sanches, L., Macabeus

Ir para o início da conversa · mensagens-chave: #37593 · #37600 · #37607

19 fev 2026 Mines rodando no KN5000 ★★

Felipe adicionou um ícone num menu do KN5000 para lançar o jogo Mines e organizou o trabalho com o issue tracker Beads. Os primeiros sinais de vida do Mines no KN5000, ainda com paleta errada e flickering mas já reagindo aos botões, vieram de código C compilado com o port do LLVM.

Participantes: Felipe "Juca" Sanches, pitanga, RicBit

Ir para o início da conversa · mensagens-chave: #37628 · #37647

25 mar 2026 Assembler de TLCS-900 e o Neo Geo Pocket ★★

Respondendo a uma imagem de Felipe "Juca" Sanches, Pedro de Medeiros perguntou se o assembler de TLCS-900 poderia servir para desenvolver para o Neo Geo Pocket. Felipe disse que está funcional, que trocou o ASL pelo seu backend de TLCS-900 para LLVM e que o MAME emula o Neo Geo Pocket.

Participantes: Pedro de Medeiros 👾, Felipe "Juca" Sanches, Hugo (Agaelebê), Pablo Vasques Bravo-Villalba

Ir para o início da conversa · mensagens-chave: #37887 · #37892 · #37898

27 abr 2026 Conteúdo abandonado no Another World ★★★

Felipe "Juca" Sanches publicou um mapa do Another World e, a partir da análise do bytecode, reativou com um patch o comportamento do besouro da primeira fase, montou de forma especulativa polígonos não utilizados e extraiu um trecho de música removido por um JMP. Também mostrou uma arte de cenário abandonada com uma escadaria que não existe no jogo final.

Participantes: Felipe "Juca" Sanches, Pablo Vasques Bravo-Villalba, Pedro de Medeiros 👾, Lord Spy

Ir para o início da conversa · mensagens-chave: #38552 · #38576 · #38631

DSP uPD6383GF, WSA1R e o core TLCS900 no tema Teclados Technics: KN5000, KN7000 e outros modelos

Com o Claude, Felipe avançou na engenharia reversa do instruction set do DSP NEC uPD6383GF, com 18,3% desvendados ao fim do primeiro dia, e depois compartilhou um datasheet não oficial. Ao trabalhar no WSA1R, encontrou trechos de código parecidos com os do KN5000, o que indica reuso. Um ajuste nos timers prejudicou o NeoGeo Pocket e levou à reorganização da contagem de ciclos do TLCS900 no MAME.

22 jul 2026 Engenharia reversa do DSP uPD6383GF do KN5000 ★★★

Felipe relata que o Claude está fazendo a engenharia reversa do instruction set do DSP não documentado NEC uPD6383GF, usado na placa de som do Technics KN5000. O ponto de partida foi um diagrama de blocos do service manual de outro aparelho com o mesmo chip. O trabalho seguiu estas etapas: - extrair da ROM da subCPU as tabelas de código e de parâmetros; - analisar estatisticamente os bits; - associar os programas a efeitos (reverb, chorus, flanger) e compará-los com algoritmos clássicos de DSP; - navegar pelos menus no emulador para correlacionar nomes de parâmetros com endereços do DSP. RicBit explica o raciocínio: com a premissa de um filtro Butterworth, os coeficientes esperados permitem deduzir a codificação dos opcodes. Ao fim do dia, 18,3% do instruction set estava desvendado, com esboço de disassembler e de emulação no MAME.

Participantes: Felipe "Juca" Sanches, RicBit, Pablo Vasques Bravo-Villalba, L.

Ir para o início da conversa · mensagens-chave: #39662 · #39724 · #39748

24 ago 2026 Technics WSA1R: driver no MAME e reuso de código com o KN5000 ★★

Felipe passa a trabalhar no Technics WSA1R, versão rack do Acoustic Modelling Synth, no MAME. No disassembly das ROMs encontra trechos de código parecidos com os do KN5000, o que indica reuso entre os aparelhos. Ele cruza as árvores de disassembly para chegar a um único codebase que compile, com bytematching, as ROMs de todos os aparelhos e releases. Isso também amplia o acervo de código de DSP disponível para a engenharia reversa do instruction set.

Participantes: Felipe "Juca" Sanches, L., Pedro de Medeiros 👾

Ir para o início da conversa · mensagens-chave: #40225 · #40280

16 set 2026 Datasheet não oficial do DSP uPD6383GF ★

Felipe compartilha um 'datasheet não oficial' do DSP não documentado uPD6383GF, que reúne o que já se sabe com base na engenharia reversa feita ao longo de algumas semanas.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa

  • Datasheet não-oficial do DSP uPD6383GF (uPD6383GF-unofficial-datasheet-2026-09-15.pdf)
26 set 2026 Limpeza da contagem de ciclos da família TLCS900 no MAME ★★

Depois que o PR do WSA1R foi merged pelo rb6502, notou-se que uma mudança de Felipe nos taps dos timers da CPU piorou o áudio do NeoGeo Pocket. Felipe abriu um PR de correção (16255), que deixou o WSA1R muito lento. Ao investigar, concluiu que a contagem de ciclos da família TLCS900 no MAME está desorganizada por herança do emulador de onde o core foi portado, que ele supõe ser o NeoPop. Agora reorganiza o core com o Claude para calcular os ciclos dos timers de acordo com os datasheets. Está em dúvida se envia esse PR tão perto de um release, pelo risco de efeitos colaterais em outros drivers.

Participantes: Felipe "Juca" Sanches, Shideravan, L.

Ir para o início da conversa · mensagens-chave: #40796 · #40816 · #40818

KN7000, KN6000 e outros modelos no MAME no tema Teclados Technics: KN5000, KN7000 e outros modelos

Para o KN7000, Felipe criou com o Claude Code um core da CPU, que o MAME ainda não emulava, e o driver do teclado. O PR #16250 foi aceito, assim como o PR #16394, com o suporte ao SP7001, e PRs de softlists; o PR da expansão HD-SX6 do KN6000 seguia aberto. Felipe também pretende escrever um driver do KN2000.

4 jul 2026 Compra do Technics KN7000 e início da emulação no MAME ★★★

Felipe compra um teclado Technics KN7000, adapta os scripts de descompressão de assets dos arquivos de update e extrai uma imagem da flash com o sistema principal. Com o Claude Code, cria no MAME um core de emulação da CPU, que o MAME ainda não emulava, e o driver do teclado. O Claude descobre que a tela de splash saía com ruído porque o core não implementava a instrução customizada udf07 (MN10300/AM33). Na CPU do KN7000 essa instrução é um bit-search (BSCH), usado no passo de Huffman do decoder JPEG. Felipe chama o resultado de '100% vibe-coded' e depois esclarece que interagiu muito com a IA, guiando a pesquisa. Shideravan alerta para o preconceito que o termo pode gerar e defende revisar o código gerado. RicBit comenta que a IA tem tenacidade, mas não criatividade.

Participantes: Felipe "Juca" Sanches, L., Pablo Vasques Bravo-Villalba, Shideravan, Leonardo Roman, RicBit

Ir para o início da conversa · mensagens-chave: #39424 · #39502 · #39528

21 set 2026 KN6000: PR de expansão e placa HD-SX6 ★

Felipe abre um PR de suporte à expansão do Technics KN6000 com a placa opcional HD-SX6 no MAME. Ismael Carvalho comenta que tem aparecido na internet muita coisa parecida com as contribuições de Felipe e que é bom ver gente nova percebendo que o MAME vai além do arcade.

Participantes: Felipe "Juca" Sanches, Ismael Carvalho

Ir para o início da conversa

26 set 2026 KN7000: technote sobre VHS ★

Felipe compartilha um documento (vhs-technics-kn7000-technote.pdf) e fotos. Shideravan pergunta se o material já foi dumpado e se o conteúdo seria o mesmo de um DVD comercial sobre os recursos do KN7000.

Participantes: Felipe "Juca" Sanches, Shideravan

Ir para o início da conversa · mensagens-chave: #40735

  • Technote sobre VHS do KN7000 (vhs-technics-kn7000-technote.pdf)
7 out 2026 Driver do Technics KN7000 aceito no MAME ★★

Felipe "Juca" Sanches anunciou que o PR #16250 do MAME, com o driver do Technics KN7000, foi aceito.

Participantes: Felipe "Juca" Sanches, Shideravan

Ir para o início da conversa

8 out 2026 Protótipo do Technics KN2000 e ex-funcionário da Technics ★★

Felipe "Juca" Sanches encontrou fotos publicadas por Phil Leader, ex-funcionário da Technics no Japão, entre elas a do primeiro protótipo do KN2000. Explicou que só tem a fotografia do protótipo e que pretende um dia escrever para o MAME um driver do KN2000, modelo de produção ainda à venda no eBay e no Mercado Livre.

Participantes: Felipe "Juca" Sanches, Marcelo, Shideravan

Ir para o início da conversa · mensagens-chave: #41269 · #41312

10 out 2026 KN7000 no MAME com o SP7001 e PR #16394 ★★

Felipe "Juca" Sanches mostrou o driver do KN7000 rodando a versão modificada do sistema que trabalha com um leitor de cartão SD alemão mais avançado que o drive de SD original, e quebrou uma proteção por senha. O PR #16394 (ROMs adicionais, softlist inicial e suporte ao SP7001) foi aceito.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #41324 · #41340 · #41347

13 out 2026 PRs de softlists dos teclados Technics no MAME ★

Felipe "Juca" Sanches mostrou cinco PRs seus abertos no MAME, a maioria apenas com declarações de softlists. Depois informou que todos os de softlists foram aceitos, com merges de rb6502 e ajrhacker, e que segue aberto apenas o mais antigo, da placa opcional HD-SX6.

Participantes: Felipe "Juca" Sanches

Ir para o início da conversa · mensagens-chave: #41634

KN7000: execução de código e dump do firmware no tema Teclados Technics: KN5000, KN7000 e outros modelos

Felipe buscou formas de dumpar o firmware: estudou um exploit do cartão SD, pedido que o Claude Code bloqueou, e pensou em filmar a saída de vídeo do debugger do firmware. Depois mostrou um jogo rodando a partir do cartão SD num teclado sem modificações. Com um loader oficial de conversores em disquete, fez o dump do firmware v1.3 e das wave ROMs e passou a rodar diagnósticos do gerador de tons e dos DSPs.

28 jul 2026 KN7000: exploit do SD card para dump não destrutivo das ROMs ★★

Felipe quer executar código arbitrário no Technics KN7000 para dumpar as ROMs sem destruí-las, talvez explorando um bug nas funções do SD card. Ele relata que o Claude Code bloqueia o pedido por alertas de cibersegurança, inclusive no Opus, mas que deu várias dicas antes de bloquear. Compartilha um relatório em PDF sobre a segurança da mídia SD do KN7000. Depois de enviar feedback, mostra telas em que a própria IA argumenta a favor do caso e posta um trecho de um post de blog gerado sobre o tema.

Participantes: Felipe "Juca" Sanches, RicBit

Ir para o início da conversa · mensagens-chave: #39905 · #39919

  • Relatório de segurança da mídia SD do KN7000 (KN7000-SD-media-security-report-2026-08-03.pdf)
10 ago 2026 KN7000: debugger no firmware e extração do sinal de vídeo ★★

Felipe descobre um debugger no firmware original do KN7000. Ele pensa em dumpar a ROM filmando a saída de vídeo página por página, mas o sinal tem muito ruído. Pablo sugere extrair um sinal mais limpo, talvez RGB, em um estágio anterior do circuito. Felipe nota que, no diagrama, só o pino do verde está ligado à saída de vídeo. Leonardo Roman aponta no diagrama os sinais RGB e os sincronismos (HRTC/VRTC) e diz que falta testar se é RGB (15 kHz) ou VGA (31 kHz).

Participantes: Felipe "Juca" Sanches, Pablo Vasques Bravo-Villalba, Leonardo Roman, RicBit

Ir para o início da conversa · mensagens-chave: #39963 · #39972 · #39981

8 out 2026 SD-PLUG-iN7000 e execução de código pelo cartão SD do KN7000 ★★

Felipe "Juca" Sanches explicou que fez o dump do firmware do KN5000 pela placa de expansão HDAE5000, mas que o KN7000 não tem esse conector. Encontrou o SD-PLUG-iN7000, um produto que rodava código próprio pela interface de cartão SD. Como essa interface tem um processador com ROM ainda não extraída, preparar um cartão inicializável seria um problema de ovo e galinha.

Participantes: Felipe "Juca" Sanches, L.

Ir para o início da conversa · mensagens-chave: #41237 · #41238

16 out 2026 Jogo rodando a partir do cartão SD em um KN7000 sem modificações ★★

Felipe "Juca" Sanches publicou um vídeo de um jogo rodando no KN7000. Segundo ele, o mais importante da demonstração é provar que dá para rodar código arbitrário a partir do cartão SD em um teclado sem modificações.

Participantes: Felipe "Juca" Sanches, Shideravan

Ir para o início da conversa · mensagens-chave: #41616

17 out 2026 Carregador oficial em disquete e dump do firmware v1.3 do KN7000 ★★★

Felipe "Juca" Sanches descobriu que a Technics publicou disquetes com conversores de formatos de outros fabricantes, programas executáveis carregados por um loader oficial da ROM, o que permite rodar código no teclado. Com isso fez o dump da ROM v1.3 do seu KN7000 e das wave ROMs, abriu os PRs #16517 e #16520 no MAME e lembrou que o projeto vem desde 2021, com raízes em 2008. Ramiro Polla perguntou se o método serve para o KN5000, e Felipe respondeu que em teoria sim.

Participantes: Felipe "Juca" Sanches, Ramiro Polla, RicBit

Ir para o início da conversa · mensagens-chave: #41663 · #41688 · #41691

20 out 2026 Diagnóstico de hardware e Another World no KN7000 ★★★

Com a execução de código no aparelho, Felipe "Juca" Sanches passou a rodar diagnósticos para coletar evidências sobre o gerador de tons e os DSPs, que não têm documentação. Fez a VM do Another World tocar os sons originais com um mixer de 4 canais escrito no assembly do DSP. No MAME, corrigiu um erro na emulação do gerador de tons que saturava a fila de polifonia, mas o áudio ainda gagueja.

Participantes: Felipe "Juca" Sanches, Leonardo Roman, L., Nelson Lima

Ir para o início da conversa · mensagens-chave: #41721 · #41731

Pinball Fantasies, ProTracker e leitor de PDF no KN7000 no tema Teclados Technics: KN5000, KN7000 e outros modelos

Felipe rodou no KN7000 o Pinball Fantasies, escrito em C e compilado com um fork do LLVM, um ProTracker no estilo do Amiga e um leitor de PDF de partituras.

26 out 2026 Pinball Fantasies rodando no KN7000 ★★

Felipe "Juca" Sanches fez o Pinball Fantasies rodar no KN7000, escrito em C e compilado com um fork do LLVM. O LCD lento borra o scroll do playfield, por limitação do hardware e não de desempenho. L. sugeriu girar a tela ou deixar rastro na bola, como o Windows fazia em laptops com LCD lento.

Participantes: Felipe "Juca" Sanches, L., Marcio Ribeiro, Pablo Vasques Bravo-Villalba

Ir para o início da conversa · mensagens-chave: #41893 · #41895 · #41911

27 out 2026 ProTracker para o KN7000 ★★★

Querendo fazer algo útil para músicos, Felipe "Juca" Sanches aceitou a sugestão de L. de fazer um tracker e fez um ProTracker no estilo do Amiga para o KN7000, com vídeo e manual em PDF. Ainda não roda no MAME porque há PRs pendentes. Em resposta a uma pergunta sobre a CPU, indicou a página de documentação do KN7000 em arqueologiadigital.org.

Participantes: Felipe "Juca" Sanches, L., Marcelo, Pablo Vasques Bravo-Villalba

Ir para o início da conversa · mensagens-chave: #41929 · #41937 · #41942

30 out 2026 Leitor de PDF de partituras no KN7000 ★

Felipe "Juca" Sanches mostrou um leitor de PDF rodando no KN7000 para exibir partituras. Leonardo Roman sugeriu fazê-lo acompanhar as notas tocadas e rolar o PDF.

Participantes: Felipe "Juca" Sanches, Leonardo Roman, Emerson BRANCORP2000, Marcelo

Ir para o início da conversa · mensagens-chave: #41988

Índice escrito por agentes Claude que leram o log completo de cada período. Um segundo agente conferiu cada conversa contra as mensagens, e um terceiro conferiu os resumos do ano e dos temas contra as conversas. Pode conter imprecisões: cada item leva às mensagens originais. Para procurar palavras específicas, use a busca.