Emulador G-mode

Os jogos da Data East/G-mode são emuladores com seus respectivos ROM sets, instalados no Zeebo. Para cada jogo, o emulador é compilado com o código do romset que ele deve rodar, tornando-o específico e não utilizável para outras ROMs. No entanto, através de modificações no binário do emulador, mostraram que é possível forçar a emulação de outros pacotes de ROMs, permitindo a análise de quais jogos é suportado atualmente e que provavelmente virão oficialmente para o console. Porém isto não é certeza: ainda que seja possível tecnicamente, são necessários contratos e licenciamento entre a Zeebo Inc. e as detentoras dos direitos sobre os jogos.

O emulador é capaz de emular ROMs de vários arcades. Em sua última versão, também Mega Drive (SEGA).

As ROMs são armazenadas em um arquivo de extensão PAK (na versão 1.04, ZIP e 7z também), cujo formato ainda é desconhecido. Sabe-se que aloja vários arquivos e oferece compressão compatível com gzip/zlib. Os emuladores conseguem carregar os arquivos separados caso não exista o PAK correto, contando que eles estejam em uma pasta cujo nome é o código do romset e esteja junto do .mod.

Existem fortes indícios - através de referências no executável e informações da companhia que acreditamos ser responsável pelo emu e packs emu+ROM (Onan Games) -, que o emulador suporta conexões pela Internet, possibilitando partidas online. Uma vez que as ROMs originais não suportam este tipo de recurso, o emulador traduz as informações vindas do outro cliente em comandos de joystick, simulando um segundo jogador no mesmo console.

Versões dos emuladores

Existem várias versões, dependendo para qual romset foi compilado.

Jogos referenciados nos emuladores e compatibilidade

<!—Write alphabetically—> {|class = “wikitable sortable” style=“width: 100%;”

! style=“width:20%; text-align:left;”| Sistema ! style=“width:35%; text-align:left;”| Título ! style=“width:12%; text-align:left;”| Arquivo ROM ! style=“width:12%; text-align:left;”| Driver MAME ! style=“width:3%; text-align:left;”| 0.93 ! style=“width:3%; text-align:left;”| 0.94 ! style=“width:3%; text-align:left;”| 0.95 ! style=“width:3%; text-align:left;”| 0.96 ! style=“width:3%; text-align:left;”| 0.97 ! style=“width:3%; text-align:left;”| 1.00 ! style=“width:3%; text-align:left;”| 1.04

bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#8470FF
bgcolor=#8470FF
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#00FF7F
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FF0000
bgcolor=#FF0000
bgcolor=#FF0000
bgcolor=#00FF7F
bgcolor=#FFFF00
bgcolor=#00FF7F
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FF0000
bgcolor=#FF0000
bgcolor=#FF0000
bgcolor=#00FF7F
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#00FF7F
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#00FF7F
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#00FF7F
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FF0000
bgcolor=#FF0000
bgcolor=#FF0000
bgcolor=#FF0000
bgcolor=#FF0000
bgcolor=#FF0000
bgcolor=#8470FF
bgcolor=#FF0000
bgcolor=#FF0000
bgcolor=#FF0000
bgcolor=#FF0000
bgcolor=#FF0000
bgcolor=#FF0000
bgcolor=#8470FF
bgcolor=#FF0000
bgcolor=#FF0000
bgcolor=#FF0000
bgcolor=#FF0000
bgcolor=#FF0000
bgcolor=#FF0000
bgcolor=#8470FF
bgcolor=#FF0000
bgcolor=#FF0000
bgcolor=#FF0000
bgcolor=#FF0000
bgcolor=#FF0000
bgcolor=#FF0000
bgcolor=#8470FF
bgcolor=#FF0000
bgcolor=#FF0000
bgcolor=#FF0000
bgcolor=#FF0000
bgcolor=#FF0000
bgcolor=#FF0000
bgcolor=#8470FF
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FF0000
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FF0000
bgcolor=#FF0000
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FF0000
bgcolor=#FF0000
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#00FF7F
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#00FF7F
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#00FF7F
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#00FF7F
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FFFF00
bgcolor=#FF0000
bgcolor=#FFFF00

Legenda: {|class = “wikitable sortable”

!| Cor !| Descrição

bgcolor=#FFFF00
bgcolor=#8470FF
bgcolor=#00FF7F
bgcolor=#FF0000
bgcolor=#FFFFFF

Modificações no emulador

O USO DE ROMS NÃO LICENCIADAS É ILEGAL! O PROJETO OPENZEEBO NÃO APÓIA ESTA PRÁTICA.

O propósito desta pesquisa é provar que o Zeebo está apto a executar vários outros jogos, sendo necessário poucos ajustes de caráter técnico.

Quaisquer modificações no emulador implica na invalidação da licença no console, fazendo necessário o uso de JTAG para permitir a execução do executável modificado.

Abra o executável do emulador (de preferência um mais recente) em um editor hexadecimal e busque pela primeira ocorrência do código da romset para qual o emulador escolhido foi compilado. E.g.: darkseal.mod, procure por “darkseal”.

A primeira ocorrência define qual pacote carregar. Altere para o novo código, respeitando os limites de texto, sobrescrevendo (não insira bytes) o original. Caso o código seja menor, sobrescreva o restante com o byte 00 (terminador de string).

Coloque os arquivos do jogo em uma pasta cujo nome seja seu código ou “master name”.