Emulador de Nintendo NES em Harbour
Moderador: Moderadores
- vagucs
- Membro Master

- Mensagens: 1480
- Registrado em: 10 Jul 2004 10:45
- Localização: Ipanema - MG
- Contato:
Emulador de Nintendo NES em Harbour
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.
Emulador de Nintendo NES em Harbour
É um trabalho e tanto, mas, divertido!!!!
Implementar o sistema de clock, decodificação das instruções da CPU e PPU!
O projeto é open-source ?
Implementar o sistema de clock, decodificação das instruções da CPU e PPU!
O projeto é open-source ?
- vagucs
- Membro Master

- Mensagens: 1480
- Registrado em: 10 Jul 2004 10:45
- Localização: Ipanema - MG
- Contato:
Emulador de Nintendo NES em Harbour
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.
Sobre o fonte não sei, é mais para mostrar que é possível com o Harbour, o emulador compilado vou distribuir gratuitamente sim.
Emulador de Nintendo NES em Harbour
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.
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.
- vagucs
- Membro Master

- Mensagens: 1480
- Registrado em: 10 Jul 2004 10:45
- Localização: Ipanema - MG
- Contato:
Emulador de Nintendo NES em Harbour
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:
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.
Código: Selecionar todos
procedure main
v=-2000
b=u2bin(v)
r=bin2u(v)
? v
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.
Emulador de Nintendo NES em Harbour
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...
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
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...
Me parece interessante....Você já fez um, tenta portar pro Harbour sem usar C, dá um trabalho bem grande.
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
- vagucs
- Membro Master

- Mensagens: 1480
- Registrado em: 10 Jul 2004 10:45
- Localização: Ipanema - MG
- Contato:
Emulador de Nintendo NES em Harbour
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.
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.
- vagucs
- Membro Master

- Mensagens: 1480
- Registrado em: 10 Jul 2004 10:45
- Localização: Ipanema - MG
- Contato:
Emulador de Nintendo NES em Harbour
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.
Emulador de Nintendo NES em Harbour
Boa tarde, Vagner respondi no seu site ( blog ) a dias e nada vê lá.
HASA
HASA
- vagucs
- Membro Master

- Mensagens: 1480
- Registrado em: 10 Jul 2004 10:45
- Localização: Ipanema - MG
- Contato:
Emulador de Nintendo NES em Harbour
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.
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.
- vagucs
- Membro Master

- Mensagens: 1480
- Registrado em: 10 Jul 2004 10:45
- Localização: Ipanema - MG
- Contato:
Emulador de Nintendo NES em Harbour
Dá uma olhada na comunidade do facebook, nela tem os links.
https://www.facebook.com/groups/harbour ... =bookmarks
https://www.facebook.com/groups/harbour ... =bookmarks
Emulador de Nintendo NES em Harbour
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
- vagucs
- Membro Master

- Mensagens: 1480
- Registrado em: 10 Jul 2004 10:45
- Localização: Ipanema - MG
- Contato:
Emulador de Nintendo NES em Harbour
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/
https://fivetechsoft.github.io/mod_harbour/
Emulador de Nintendo NES em Harbour
Obrigado, Já li sobre ele não sabia que era filho seu Kkkkk
HASA
HASA


