Mudanças entre as edições de "Pioneer CDJ-200"
Ir para navegação
Ir para pesquisar
(7 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
+ | == Fontes de Informacoes == |
||
− | *[http://forums.pioneerdj.com/entries/21224117--SOLVED-Firmware-update-CDJ-200 Firmware Update] |
||
*[http://www.manualslib.com/download/699716/Pioneer-Cdj-200.html Service Manual] |
*[http://www.manualslib.com/download/699716/Pioneer-Cdj-200.html Service Manual] |
||
*[https://web.archive.org/web/20170209183610/https://pioneer-latin.com/downloads/firmware_27_CDJ-200_RLTXJ.zip Latest firmware] |
*[https://web.archive.org/web/20170209183610/https://pioneer-latin.com/downloads/firmware_27_CDJ-200_RLTXJ.zip Latest firmware] |
||
+ | *[https://www.nxp.com/docs/en/reference-manual/M68000PRM.pdf MOTOROLA M68000 FAMILY Programmer’s Reference Manual] (Includes CPU32 Instructions) |
||
+ | *[https://www.rockbox.org/wiki/ColdFire Documentacao sobre CPU ColdFire] (variante do m68k) |
||
+ | *[https://www.nxp.com/docs/en/reference-manual/MCF5249UM.pdf MCF5249 User's Manual] Contem documentacao dos registradores de config de hardware |
||
==Ideias== |
==Ideias== |
||
Linha 7: | Linha 10: | ||
*Alterar strings no firmware |
*Alterar strings no firmware |
||
*Desassemblar firmware |
*Desassemblar firmware |
||
+ | |||
+ | == Emulacão no MAME == |
||
+ | === Extracao do firmware === |
||
+ | * Download do update disponível na [https://web.archive.org/web/20170209183610/https://pioneer-latin.com/downloads/firmware_27_CDJ-200_RLTXJ.zip 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 === |
||
+ | |||
+ | * Branch com versao preliminar de um driver pro MAME: https://github.com/felipesanches/mame/tree/cdj200 |
||
+ | * O código do driver fica no arquivo '''src/mame/drivers/cdj200.cpp''' |
||
+ | |||
+ | === 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: <pre>QT_SELECT=5 make SUBTARGET=pioneer_ SOURCES=src/mame/drivers/cdj200.cpp REGENIE=1</pre> |
||
+ | * Execute '''sh build_cdj200.sh''' |
||
+ | |||
+ | === Como executar === |
||
+ | |||
+ | * coloque o firmware em '''~/ROM_DUMPS/cdj200/cdj200.bin''' |
||
+ | * execute o comando <pre>./pioneer_64 -rp ~/ROM_DUMPS -window -debug cdj200</pre> |
||
+ | * 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) |
||
[[Categoria:Projetos]] |
[[Categoria:Projetos]] |
Edição atual tal como às 02h50min de 17 de setembro de 2020
Fontes de Informacoes
- Service Manual
- Latest firmware
- MOTOROLA M68000 FAMILY Programmer’s Reference Manual (Includes CPU32 Instructions)
- Documentacao sobre CPU ColdFire (variante do m68k)
- MCF5249 User's Manual Contem documentacao dos registradores de config de hardware
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
- Branch com versao preliminar de um driver pro MAME: https://github.com/felipesanches/mame/tree/cdj200
- O código do driver fica no arquivo src/mame/drivers/cdj200.cpp
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)