Pioneer CDJ-200

De Garoa Hacker Clube
Revisão de 01h34min de 17 de setembro de 2020 por Juca (discussão | contribs) (→‎Como compilar)
Ir para navegação Ir para pesquisar

Fontes de Informacoes

Ideias

  • Emular
  • Alterar strings no firmware
  • Desassemblar firmware

Emulacão no MAME

Extracao do firmware

  • Download do update disponível na Wayback Machine do Internet Archive.
  • Extrair o ZIP
  • Executar o CDJ_200.EXE no wine
  • Apesar de mostrar uma janela meio estranha sem texto nenhum e uns pontos de interrogacao, pressionar OK fecha o programa e temos como resultado um arquivo CDJ_200.HEX em formato Intel iHex.
  • Usando objcopy --input-target=ihex --output-target=binary CDJ_200.HEX cdj200.bin temos como resultado um arquivo binario do firmware que é supostamente identico ao conteúdo da memória flash do aparelho. É esse arquivo que usamos para a emulacao no MAME.
  • sha1sum: d3534c43d5faa0891827393bb85e7c56c74c23ad
  • crc32: 9db83be7

Rascunho de driver de emulacao

Como compilar

  • git clone https://github.com/felipesanches/mame.git
  • cd mame
  • git checkout cdj200
  • Salve em um shell script build_cdj200.sh o seguinte comando:
    QT_SELECT=5 make SUBTARGET=pioneer_ SOURCES=src/mame/drivers/cdj200.cpp REGENIE=1
  • Execute sh build_cdj200.sh

Como executar

  • coloque o firmware em ~/ROM_DUMPS/cdj200/cdj200.bin
  • execute o comando
    ./pioneer_64 -rp ~/ROM_DUMPS -window -debug cdj200
  • isso abrirá o debugger e mostrará a primeira instrucao a ser executada durante o boot.
  • para executar passo-a-passo, vá pressionando F11
  • se quiser soltar a emulacao pra valer, pressione F5 (entretanto, nada está emulado corretamente ainda por enquanto)