Java para Super Nintendo :)

A idéia ainda é quente pessoal, mas o projeto ja está em andamento. Como trabalho ha algum tempo com compiladores e tenho uma paixão enorme por criação de jogos, acabei por conhecer a “Retro-Programming”, que é a programação de jogos pra Consoles mais antigos, como Atari 2600, Mega e o SNES. Bom, tudo muito dificil de se entender por serem escritos em assembler, e ainda um assembler de notação pouco conhecida.

Dessa forma, em parceria com Mike Sohn, dos E.U.A, sujeito o qual conhece muito bem o assembler do processador do SNES, decidimos unir forças para começar o projeto JavaNes :slight_smile:

Um compilador Java que gera código para o Super Nintendo.

Pode ser testado normalmente em qualquer emulador de SNES.

E ainda como acho q ninguem vai querer gravar nada em EPROM pra montar cartucho e tal… tenho a sugestao de gravar em um CD com um emulador de SNES para o Playstation.

Ou seja, seu game, ira rodar no Play, emulado pelo emulador do SNES.

Bom, nesta fase do projeto, ja é possível fazer algumas coisas:

import javanes.console.Game;

public class Hello extends Game{
	
	public void run() {
		
		int a = 4;
		int b = a+10;
		
		this.setCursorPosition(10, 1);
		this.printInt(a);

		
	}
	
	
}

Legal, não?

Bom, interessados, podem escrever aqui mesmo, ou ir direto pelo email
helmuthschmitz@gmail.com

Ainda estamos registrando o projeto no SourceForge, entao pode ser que leve um tempo até tudo ficar ‘distribuível’.

ahh… como nao poderia deixar de ser… o projeto JavaNes será OpenSource.

:slight_smile:

Sensacional!

Meus parabéns! Fiquei muito curioso agora pra ver isso funcionando! Na época que eu jogava video-game o SNES era o console top, sou meio velho já… ehehe
não me adaptei muito bem aos jogos 3D dos consoles atuais, ainda prefiro mil vezes os jogos antigos em 2D… mas enfim, quem sabe com um projeto com o JavaNes não comecem a aparecer alguns jogos novos feitos nas horas vagas do pessoal da comunidade!

Muito massa!!!

Parabéns. Espero jogar o mais breve possível.

caralho que jóia mano, realmente, show de bola

posta mais news pra galera ae pra gente ficar atualizado :slight_smile:

Adorei essa, aguardo notícias!! :wink:

abração!

Java vai dominar o mundo rapah,. hehehehe…

aguardo notícias sobre hein;;;; poxa… JavaNes… mto bacana…

PARABÉNS!

Eu sempre imaginei usar java para simular jogos de plataformas antigas a minha ideia era um console que rodasse direto em Java…
Mas essa idéia é brilhante pois permite jogar em plataformas atuais…

Fantástico assim que tiver capacidade de ajudar garanto que vou fiquei muiito ligado nessa idéia valeu…

mas será q dai estes jogos feitos para o SNes nao rodariam tambem numa plataforma para celular ???

[quote=Leozin]caralho que jóia mano, realmente, show de bola

posta mais news pra galera ae pra gente ficar atualizado :)[/quote]

uhauhauhauha caralho foi foda hauhauhauhuhaa

Boa, se precisar to dentro… flwzzz :smiley: :smiley: :smiley: :smiley: :smiley: :smiley:

[]s

Entao pessoal, fico muito contente que o projeto JavaSNes esteja
sendo bem aceito dessa forma. Acho até que é hora de dar uma
visão melhor sobre o projeto.

Pra começar, escrevi o tópico tão rápido que cometi alguns erros
de digitação importante.

O projeto na verdade se chama JavaSNes e não JavaNes como eu havia
escrito. Eu achei engraçado também quando o Mike, que sabe um pouco
de espanhol, foi ler o tópico, e me perguntou o que era “Sohn” em
portugues, pois eu havia escrito Mike Sohn. o “Sohn” era o começo
de uma outra frase que eu iria escrever… mas como estava com
tanta pressa, viajei no número de Backspace e nao apaguei tudo.
Se fosse uma aplicação java e eu estivesse dentro do Eclipse, sendo
mimado como só o Eclipse me mima, esse erro nao aconteceria kkkkk.

Enfim, retificando, a outra parte do projeto é feita pelo
Mike, que na verdade se chama Michael Bazzinotti. Ele é o responsável
pela parte do Assembler do processador SNES. É um cara bem
acessível e não tem problemas em tirar as dúvidas de ninguem,
claro, desde que as dúvidas sejam escritas na língua inglesa.

Seguindo uma das premissas do java, que é o fato de ser multiplata-
forma, a ideia inicial, era escrever uma VM que fosse multi-console.
Ou seja, que pudesse rodar no Mega Drive, no SNES, Game Boy, etc…
Mas o que me deixou intrigado, foi as gritantes diferenças ténicas
entre os consoles. Eu realmente queria poder fazer com que o programador
usasse o mesmo codigo fonte, tanto para Mega Drive qto para SNES,
mas devido a problemas tecnicos, com certeza fica dificil, como
por exemplo, o fato do mega poder mostrar somente 65 cores simulta-
neamente na tela, eqto o SNES consegue uma gama bem maior.

Enfim, a sintaxe será java para todos, mas quanto o programadar
for tentar fazer coisas no Mega Drive, que soh é possivel se fazer
no SNES, vai ter problemas… assim como quem faz jogos para celular
tem problemas com os diferentes modelos e fabricantes, que variam
desde o tamanho da tela, qde de cores, sintetizadores, etc…

Resolvi começar pelo SNes por que ele é mais bem documentado
que o Mega Drive, embora, extra-oficialmente, um ex-engenheiro da
Sega, morando na alemanha, se interessou em ajudar na versao pra
Mega Drive, a qual se chamaria JavaDrive ou Javenesis.

Um ponto importante a se esclarecer: nao estamos fazendo uma
VM para o SNES. Mas sim, um compilador que gera código nativo
para ele. E tenho q confessar que quando conseguimos o primeiro
"Hello World", foi realmente emocionante. Eu fiquei executando
umas 30 vezes, ate que minha namorada perguntou o que eu tanto
via no mesmo programa sendo executado varias vezes. Eu sei que
vcs me entendem, mas com certeza, ela nunca entenderá. kkkkk

Para se entender um pouco da dificuldade ténica, hoje mesmo,
tivemos a maior dificuldade em lidar com um situação:
Os registradores limitados do SNES. Por exemplo, soh podemos
representar numeros inteiros com 1 byte, 2 ou 3. Isso mesmo, 3!
Hoje foi um dia difícil, e ainda não chegamos a uma solucao.
Pq fazer um inteiro com 4 bytes, como é o padrao oficial Java,
é facil, dificil é fazer operacoes aritméticas se o processador
nao te da esse suporte.

Entao, sao esses tipos de opções q estamos tendo que tomar agora.
Se colocar inteiro de 4 bytes, fica Java mesmo :slight_smile: mas tem umas
18 instrucoes assembler a mais soh para soma. Se colocar 3 bytes
fica rapidao e certeiro, mas, fica diferente do Java.

Uma coisa é certa. Na primeira versao, até agora, nao vemos
como dar suporte a classe String. Pois é realmente complicado
fazer realoção de memória no SNES, no caso do programador
querer alocar um String maior do que a que ele ja tinha.
Provavelmente, trabalharemos com array de chars, mais ou menos
como em C.

Mas nao se preocupem, nao é nada difícil.

Toda ajuda é bem vinda; Assim como toda crítica também.

Qualquer duvida, entrem em contato. Vou tentar responder
o mais rápido possível.

Para quem está muito curioso, e quer ver qualquer coisa que seja,
estou mandando uma cópia de testes.

Link:

Como instalar:

1)Cria uma pasta qualquer para ele. No meu, uso “D:\Snes\JavaSNes”.
2)Descompacte o Zip la dentro.

Pronto!!! heheh!!!

Porém ha uma requisição importante. O Javac, compilador java que vem junt o com o JDK da SUN, deve estar no PATH da máquina, para que o JavaSNes possa chama-lo.

Para testar isso, você abrir um prompt de commando, e digitar ‘javac’. Se o ambiente de command, nao reconhecer ‘javac’ como comnado, entao ele nao está configurado no path da maquina.

*** o JavaSNes, soh funciona com o Javac acessíve de qualquer lugar, ou seja, no PATH.

Se tudo isso, estiver Ok, basta digitar

javasnes -cp javasnes_lib.jar Hello.java

Se tudo ocorrer bem, ele irá compilar Hello.java e chamar um emulador SNES para mostrar o programa em execução.

Detalhes desta implementação.

LIMITADÍSSIMA

Tudo, deve ocorrer dentro do metodo estatico ‘Run’

Só tem suporte para variáveis Inteiras

Só tem suporte para 2 variáveis

Só faz soma

Só pode chamar os metodos setCursorPosition e printInt

Como eu disse, é super limitado. É uma versao para os
curiosos poderem saciar um pouco da vontade ver
seus programas rodando no SNES.

é normal, que qualquer coisa muito diferente do que esta
em Hello.java, cause uma série de bugs! heheh

Código de Hello.java, que vem como exemplo das funcionalidades
atuais:

import javanes.console.Game;

public class Hello extends Game{
	
	public void run() {
		
		int a = 4;
		int b = a+10;
		
                //Coloca o cursor na coluna 10, linha 1
		this.setCursorPosition(10, 1);
                //Escreve na tela a variavel inteira a
		this.printInt(a);

		
	}
	
	
}

Ja estava contente com o projeto, mas vi que é soh pra Windows, infelizmente nao vou poder testar/ajudar. :cry:

Nao tem como eu usar no Linux nao?

Tem sim… ja estou preparando a versão Linux… na verdade mesmo, estou reiniciando o projeto que estava sendo escrito em C para Java.
O codigo terá comentarios em Ingles e Portugues :slight_smile:

Dessa forma, a comunidade java além de desenvolver jogos, também pode ajudar e estudor o código do próprio compilador, e o mesmo, tem um código fonte só para todas as plataformas, o que nao aconteceria se eu fizesse com C, tendo q fazer uma versão para cada S.O.

Um dos projetos que tenho, é fazer uma Distribuicao particular do Kurumin, só para desenvolvimentos de jogos, mas isso, me tomaria um certo tempo hehehe… e agora, vou dedicar o tempo livre para o JavaSNes.

Um dos problemas q estou tendo agora mesmo, é adpatar a Classe Graphics para o SNes.

Agora pouco, quase quebrei meu teclado kkkk

O que acontece, é que o SNES trabalho meio q de maneira fixa.
Para exibir uma imagem(ou sprite), ele primeiro carrega uma PALLETA de cores para a VRAM(Memoria de video dele), depois ele carrega uma sequencia de Tiles(imagens menores para serem reaproveitadas, no snes, o comum é se encontrar de tamanho 8x8 pixels) e somente então, podemos desenhar o que queremos baseado nos tiles.

Entao imagine, o PARTO q está sendo para poder por exemplo desenhar linhas dinamicamentes!!! kkkk

Mas enfim, prometo ainda hoje ou amanha a noite, postar um link para download da versão Linux :slight_smile:

Se precisar de ajuda manda uma MP :wink:

Fala Helmuth, blza?
Bom, já disse anteriormente que estaria ajudando no projeto. Mas agora estou oficialmente me incluindo nele.
Precisa me passar por email oque devo instalar na minha maquina para desenvolver java, mesmo eu sendo do (.net), rsrs. Mas reconheço o poder do java e a quantidade de anos luz que esta há frente.

Fico ancioso esperando, os materiais e as intruções para ajudar nesse projeto.

Abração
8)

pow kara gostei muito da ideia por 2 motivos adora java e adoro videogames, so nao consegui baixar o projeto pq o arquivo nap esta mais la tem como vc colocar denovo?

grato…

Por acaso alguém tem notícias desse projeto?? Vingou ou ficou só no papo mesmo?

Então, eu gostaria muito de saber se o projeto está andando ou não, ou então se poderá distribuir os fontes para que pessoas possam continuar.

Obrigado

e ai… como anda o projeto?