Emulador de Nintendo NES em Harbour

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
vagucs
Membro Master
Membro Master
Mensagens: 1480
Registrado em: 10 Jul 2004 10:45
Localização: Ipanema - MG
Contato:

Emulador de Nintendo NES em Harbour

Mensagem por vagucs »

Depois de muitos e muitos dias de esforço, estou tentando concluir um emulador NES didatico e em Harbour, consegui primeira emulação de uma ROM.
Anexos
nes.png
Sem mais
Wagner Nunes
www.vagucs.com.br
Avatar do usuário
bencz
Usuário Nível 4
Usuário Nível 4
Mensagens: 524
Registrado em: 28 Abr 2012 17:36
Contato:

Emulador de Nintendo NES em Harbour

Mensagem por bencz »

É um trabalho e tanto, mas, divertido!!!!
Implementar o sistema de clock, decodificação das instruções da CPU e PPU!
O projeto é open-source ?
Imagem
Avatar do usuário
vagucs
Membro Master
Membro Master
Mensagens: 1480
Registrado em: 10 Jul 2004 10:45
Localização: Ipanema - MG
Contato:

Emulador de Nintendo NES em Harbour

Mensagem por vagucs »

rapaz, é difícil viu, ainda mais considerando que o Harbour não tem as variáveis "signed" e "unsigned",tudo é "signed" e ter aprender e interpretar o assembler de um processador totalmente fora do x86, assim, né mole não, são muitos erros e acertos.

Sobre o fonte não sei, é mais para mostrar que é possível com o Harbour, o emulador compilado vou distribuir gratuitamente sim.
Sem mais
Wagner Nunes
www.vagucs.com.br
Avatar do usuário
bencz
Usuário Nível 4
Usuário Nível 4
Mensagens: 524
Registrado em: 28 Abr 2012 17:36
Contato:

Emulador de Nintendo NES em Harbour

Mensagem por bencz »

Bom, sobre os numeros unsigend... basta utilziar as funções binarias do Harbour... por exemplo: U2bin(nNumber)
Eu implementei um emulator de NES na faculdade... não é tão complexo assim, na verdade, é bastante simples, o mais complicado foi entender o sistema de leitura do ROM....
Sobre os fontes, não vejo sentido guardar para vc estes fontes, visto que é um projeto de estudos e que o conhecimento pode ser compartilhado com todos, mas, tudo bem... a escolha é de cada um.
Imagem
Avatar do usuário
vagucs
Membro Master
Membro Master
Mensagens: 1480
Registrado em: 10 Jul 2004 10:45
Localização: Ipanema - MG
Contato:

Emulador de Nintendo NES em Harbour

Mensagem por vagucs »

Toda documentação do NES é pública sim, e quanto ao Unsigned no Harbour não é tão simples assim não, veja um exemplo:

Código: Selecionar todos

procedure main
v=-2000
b=u2bin(v)

r=bin2u(v)

? v

Pode rodar ai, mesmo indo para esta rotina que em tese deveria converter signed para unsigned ela retorna -2000, para um processador 8 bits nao pude usar elas, tive que criar as minhas para garantir que operações nos registradores ao ficarem negativas eu pudesse ligar a flag N e o registrador continuar positivo.

Quanto aos fontes, você não faz ideia do trabalho que tive, mas não sei, talvez vou liberar ele bem documentado que em xBase sim pode ser portado para qualquer linguagem existente.

Você já fez um, tenta portar pro Harbour sem usar C, dá um trabalho bem grande.

Já fiz descompilador de Clipper, Harbour até TOTVS consegui avançar, mas fazer o emulador deu mais trabalho, logo não devo liberar os fontes não, estou vendo ainda sobre isso.
Sem mais
Wagner Nunes
www.vagucs.com.br
Avatar do usuário
bencz
Usuário Nível 4
Usuário Nível 4
Mensagens: 524
Registrado em: 28 Abr 2012 17:36
Contato:

Emulador de Nintendo NES em Harbour

Mensagem por bencz »

Falei besteira...
Depois me lembrei que o Harbour não sabe se o numero é com sinal ou não, ou seja, não existe um tipo ou marcador que diz isso à ele... então, é necessário implementar o seu sistema para converter o numero "unsigned" para string...
Novamente, quanto aos fontes, não faz sentido segurar eles para você pois não é um sistema comercial ou algo que você vá ganhar dinheiro com isso... pode ter dado trabalho, mas, é algo sem fins comerciais, apenas estudos...
enfim, tanto faz... essa é somente a minha opinião...
Você já fez um, tenta portar pro Harbour sem usar C, dá um trabalho bem grande.
Me parece interessante....
vou migrar o meu emulador do NES para Harbour
Vou utilizar o SDL para trabalhar na parte gráfica... logo, terei que implementar 2 ou 3 funções em C para acessar algumas informações do SDL, como, para obter o retorno do teclado...., é possível acessar essa informações diretamente no Harbour, é apenas necessário migrar um monte de struct do SDL para o Harbour, e, não estou com saco nem vontade de fazer isso, portanto, vou só implementar essas funções para acessar as informações da struct....

O código estará neste repositório: https://github.com/bencz/harbourNes
Conforme irei trabalhando ( somente no meu tempo livre ), irei postando as atualizações aqui
Imagem
Avatar do usuário
vagucs
Membro Master
Membro Master
Mensagens: 1480
Registrado em: 10 Jul 2004 10:45
Localização: Ipanema - MG
Contato:

Emulador de Nintendo NES em Harbour

Mensagem por vagucs »

Isso ai bencz, sem fins comercial, como muitos emuladores existem e não tem código fonte liberado.

A rotinas que fiz para trabalhar signed para unsingned nao usei string, fiz tudo na base da matemática mesmo e ficaram bem rápidas.

Fiz o emulador também usando classes, mas agora estou fazendo otimização da CPU, devo adotar um modelo procedural, até porque quero fazer um fonte que seja facilmente portável e não depende de objetos pode ser muito interessante.

Avança ai, você vai ver que é mais difícil implementar algo em Harbour do que em C,Javascript, Go, Ts, é bem complica lhe dar com algumas situações em uma linguagem de alto nível.

Você fez seu emulador em C? Liberou os fontes em algum lugar?

Estou fazendo a programação da PPU no momento, a CPU ja tá 99%, algumas inconsistências só nos mapper, mas porque fiz só o Mapper 2 até agora.

Tá avançando.
Anexos
nes2.png
Sem mais
Wagner Nunes
www.vagucs.com.br
Avatar do usuário
vagucs
Membro Master
Membro Master
Mensagens: 1480
Registrado em: 10 Jul 2004 10:45
Localização: Ipanema - MG
Contato:

Emulador de Nintendo NES em Harbour

Mensagem por vagucs »

PPU e CPU 97%, ja roda alguns jogos, mas o desempenho ainda ta lento, o harbour é lento para este tipo de trabalhando dando de 2 a 3 quadros por segundo, agora vou começar a APU.
Anexos
nes.png
Sem mais
Wagner Nunes
www.vagucs.com.br
Avatar do usuário
HASA
Colaborador
Colaborador
Mensagens: 1088
Registrado em: 01 Set 2003 19:50
Localização: São Paulo
Contato:

Emulador de Nintendo NES em Harbour

Mensagem por HASA »

Boa tarde, Vagner respondi no seu site ( blog ) a dias e nada vê lá.
HASA
Avatar do usuário
vagucs
Membro Master
Membro Master
Mensagens: 1480
Registrado em: 10 Jul 2004 10:45
Localização: Ipanema - MG
Contato:

Emulador de Nintendo NES em Harbour

Mensagem por vagucs »

Ola Hasa,
WEBWAP ham nao fiz para windows, nao teve procura, e olha que existe a um bom tempo o modulo, agora fizeram um com código aberto, até aconselho o uso dele, ja roda windows e tudo mais.
Sem mais
Wagner Nunes
www.vagucs.com.br
Avatar do usuário
HASA
Colaborador
Colaborador
Mensagens: 1088
Registrado em: 01 Set 2003 19:50
Localização: São Paulo
Contato:

Emulador de Nintendo NES em Harbour

Mensagem por HASA »

Legal, onde posso encontra-la ?

HASA
Avatar do usuário
vagucs
Membro Master
Membro Master
Mensagens: 1480
Registrado em: 10 Jul 2004 10:45
Localização: Ipanema - MG
Contato:

Emulador de Nintendo NES em Harbour

Mensagem por vagucs »

Dá uma olhada na comunidade do facebook, nela tem os links.




https://www.facebook.com/groups/harbour ... =bookmarks
Sem mais
Wagner Nunes
www.vagucs.com.br
Avatar do usuário
HASA
Colaborador
Colaborador
Mensagens: 1088
Registrado em: 01 Set 2003 19:50
Localização: São Paulo
Contato:

Emulador de Nintendo NES em Harbour

Mensagem por HASA »

:-(
Vagner pesquisei por WEBWAP e não tive sucesso "Não foi possível encontrar nenhum resultado para WEBWAP"

Beleza vou rastrear por WEBWAP quem sabe acho,

Valeu pela dica,

:-)

HASA
Avatar do usuário
vagucs
Membro Master
Membro Master
Mensagens: 1480
Registrado em: 10 Jul 2004 10:45
Localização: Ipanema - MG
Contato:

Emulador de Nintendo NES em Harbour

Mensagem por vagucs »

No caso a webwap é o modulo que criei, mas como tem o modulo opensource e para eu lhe dar o suporte pode ser impossível, por isso passei para vc ver o módulo free, é muito bom o projeto.

https://fivetechsoft.github.io/mod_harbour/
Sem mais
Wagner Nunes
www.vagucs.com.br
Avatar do usuário
HASA
Colaborador
Colaborador
Mensagens: 1088
Registrado em: 01 Set 2003 19:50
Localização: São Paulo
Contato:

Emulador de Nintendo NES em Harbour

Mensagem por HASA »

Obrigado, Já li sobre ele não sabia que era filho seu Kkkkk

HASA
Responder