Pues nada, viendo que no había ningún post en español me he decidido a crear uno.
Aunque me defiendo más o menos con el inglés me gustaría saber si hay alguién por aquí que hable español y poder crear una micro-comunidad de habla española donde poder discutir cuestiones relacionadas con el desarrollo para la NES.
Saludos.
Yo hablo español, aunque todavía soy un gran novato. Si bien me considero bastante familiarizado con los aspectos gráficos, no he logrado hacer más que mostrar dos tiles de fondo en la misma linea horizontal, y eso modificando una demo de "hola mundo" de otra persona. Cuando domine más la NES me gustaría discutirla en español. Aunque igual estoy cómodo con el inglés, mientras no tenga que hablarlo.
egfelixdcg wrote:
Yo hablo español, aunque todavía soy un gran novato. Si bien me considero bastante familiarizado con los aspectos gráficos, no he logrado hacer más que mostrar dos tiles de fondo en la misma linea horizontal, y eso modificando una demo de "hola mundo" de otra persona. Cuando domine más la NES me gustaría discutirla en español. Aunque igual estoy cómodo con el inglés, mientras no tenga que hablarlo.
Me alegro de encontrar alguien que hable español.
Yo estoy mas o menos igual que tú en cuanto a conocimiento, pero poco a poco estoy avanzando. Estoy desarrollando un pequeño tutorial, sobre las cosas que voy aprendiendo si quieres echarle un vistazo te mando la web por m.p.
Saludos.
Bueno, me interesaría darle un vistazo. Por cierto, hay una página que parece muy buena, está en español, y tiene información de cómo programar para la NES, es esta:
http://www.consolasparasiempre.net/ fíjate en la sección programación. Otra cosa muy interesante es este nuevo tutorial de Disch en inglés acerca del momento para dibujar los tiles
http://nesdev.com/bbs/viewtopic.php?t=5062 . Estuve leyendo varias cosas de la NES pero al momento de escribir código es como que me echo para atrás. Tal vez lo que estés escribiendo me ayude a dar otro paso.
No conocía esa página, el demo de NES que hay es muy útil para empezar ya que introduce todo lo básico en un solo programa. Te recomiendo que le eches un vistazo al tutorial_nes_101, es muy parecido pero usa el scroll vertical (horizontal mirroring).
Aquí te dejo mi página que te comentaba, en la que estoy intentando recopilar todos los tutoriales/artículos que veo interesantes.
http://www.ealdor.110mb.com/index.php
Saludos.
¡Muchas gracias! Se ve bastante buena tu página. Creo que voy a experimentar un poco con el código fuente de la demo que mustra la sprite
¿Tutorial NES 101? Una vez me topé con ese tutorial, pero lo dejé de lado porque este no usaba el ensamblador NESASM o el ASM6 de loopy y pensé que me iba a marear. En el foro se habla bien de el y leí que hay una adaptación al ASM6. Creo que lo voy a buscar en algún momento. Gracias.
El tutorial 101 usa el NESASM pero loopy lo adapto para que usara el ASM6.
Puedes descargarlo desde su web:
http://home.comcast.net/~olimar/NES/NES101_asm6.zip
Saludos.
Te lo agradezco mucho. Ahora tengo varias cosas para ojear, jeje
Hola a todos.
Yo soy un programador de C#.NET 2.0, llevo desarrollando windows forms mas o menos 1 año y tengo buenas bases sobre POO, me gustaria empezar un proyecto de un emulador de NES open source, y realmente no tengo conocimientos sobre como emular un chip, pero pues me gustaria que empezaramos un proyecto y tambien me gustaria saber si alguien quiere comprometerse a dirigir el grupo en caso de que hallan varios que quieran empezar a desarrollar.
No tengo problemas si hay que programar en C++, ya que he leido que es mucho mejor para estos fines que C#.
No tengo problemas tampoco si hay que leer en ingles, y pues seria muy bueno si alguien con experiencia nos dirige.
Muy buenas a todos!!
Estoy comenzando a trabajar con el tema de desarrollo para la NES, y necesito ayuda en un par de cosas:
Alguien comentaba que en la web consolasparasiempre.net habia tutoriales muy buenos, sin embargo, dicha web ya no existe. ¿Alguien podria pasarme los tutoriales que habia en esa web?
Otra cosa que me interesaria es un buen tutorial para introducir musica en mi programa de NES, que es algo que no domino para nada.
Muchas gracias!!
Es una pena que consolasparasiempre ya no esté más. No recuerdo si bajé los tutoriales. Por el momento estoy muy ocupado, pero en cuanto pueda voy a revisar mi computadora a ver si encuentro alguno de estos tutoriales, y te los paso.
Me fijé, y lamentablemente no los tengo. Se ve que me tranquilizé de guardar la página en mis favoritos, y no me pasó por la mente que iba a desaparecer.
Vaya... que pena, pero muchas gracias de todas maneras
javsalgar wrote:
Muy buenas a todos!!
Estoy comenzando a trabajar con el tema de desarrollo para la NES, y necesito ayuda en un par de cosas:
Alguien comentaba que en la web consolasparasiempre.net habia tutoriales muy buenos, sin embargo, dicha web ya no existe. ¿Alguien podria pasarme los tutoriales que habia en esa web?
Otra cosa que me interesaria es un buen tutorial para introducir musica en mi programa de NES, que es algo que no domino para nada.
Muchas gracias!!
Buenas Javsalgar, yo llegué a descargarme el demo que ponía de ejemplo en el tutorial de programación de la NES.
http://ealdor.110mb.com/Mi%20NES%20Demo.tar.gz
Saludos.
Hola muy buenas!
He llegado aquí de pura casualidad x)
Con respecto a los tutoriales de consolas para siempre, he encontrado un backup en la máquina del tiempo de archive.org
http://web.archive.org/web/200710121918 ... g/prog.htm
He probado un .pdf y lo carga.
Yo hago música para NES desde hace algún tiempo. Si a alguien le hace falta alguna cancioncilla o algo, que se ponga en contacto conmigo. De hecho estaría interesado en hacer un musicdisk: una interfaz con algún efecto muy simple en la que se pudieran reproducir diferentes .nsfs ... ¡Molaría un montón!
Aquí hay algunos temas míos:
http://sites.google.com/site/sergeeo/mu ... chivos-nsf
¿Sois españoles, americanos?
¡Un saludo!
Soy David Senabre, autor de la web y los artículos de consolas para siempre, y sólo quería comentar que la página está completamente operativa. Puede que los problemas que se comentaban aquí se deban a que coincidió con unos días que nos quedamos sin servidor.
Un saludo
patroclus wrote:
Soy David Senabre, autor de la web y los artículos de consolas para siempre, y sólo quería comentar que la página está completamente operativa. Puede que los problemas que se comentaban aquí se deban a que coincidió con unos días que nos quedamos sin servidor.
Un saludo
Gracias por el aviso David.
Hola buenas! No me esperaba encontrar un hilo en español, y menos con dos páginas xD Soy nuevo por el lugar, me defiendo con el inglés pero bueno, estaría bien que los tres o cuatro que seamos podamos hablar por aquí.
Un saludo!
uffff recien veo esto! saludos desde Argentina! hace rato q ando buscando a alguien q me explique bien bien el funcionamiento de la PPU. a estos gringos les entiendo, pero no al nivel de detalle q necesito. alguien por ahi q se ofrezca a ayudarme???
Bueeeenas, Argentino por acá también.
Saludos!
Che mataría hacer un Argentina NesDev group o algo, hasta se podría laburar en conjunto para hacer algo interesante... no se, algun juego, algun emu
Petruza wrote:
Bueeeenas, Argentino por acá también.
Saludos!
Che mataría hacer un Argentina NesDev group o algo, hasta se podría laburar en conjunto para hacer algo interesante... no se, algun juego, algun emu
contame YAAAAAAA si es para hacer algun emu! hace meses q estoy esperando q alguien se prenda o aunq sea q me conteste este post!
Wave wrote:
Algun español por aqui?
yo!
ehguacho wrote:
Wave wrote:
Algun español por aqui?
yo!
Pero estas en Argentina?
Wave wrote:
ehguacho wrote:
Wave wrote:
Algun español por aqui?
yo!
Pero estas en Argentina?
sisi, en Rosario mas precisamente
vos de donde sos?
ehguacho wrote:
Wave wrote:
ehguacho wrote:
Wave wrote:
Algun español por aqui?
yo!
Pero estas en Argentina?
sisi, en Rosario mas precisamente
vos de donde sos?
De cerca de Barcelona
Wave wrote:
ehguacho wrote:
Wave wrote:
ehguacho wrote:
Wave wrote:
Algun español por aqui?
yo!
Pero estas en Argentina?
sisi, en Rosario mas precisamente
vos de donde sos?
De cerca de Barcelona
Barcelona, Españá? ufff aca al toque! jajaja che estas programando un emu de nes vos también?
Jaja piscuí, si preguntó "Algun español por aqui?"
Petruza wrote:
Jaja piscuí, si preguntó "Algun español por aqui?"
oooh Petruza, tanto tiempo! como anda eso? seguis con el emulador? yo lo tuve que dejar por que me mataron en la facultad ._.
Jaja te mataron con cantidad de estudio o te mataron por haber elegido un emu como tesis?
Yo lo colgué por ahora, en parte por un nuevo laburo que me ocupa más tiempo, y en parte porque como llegué a tener lo mínimo indispensable para correr una ROM y al probarlo las ROMs se cuelgan todas salvo una demo con una pantalla estática, ahora tengo que desarrollar un debugger.
Empecé uno con QT y OpenGL (mi emu antes usaba SDL) y en eso quedó, el tema es que es casi como todo un proyecto aparte, nunca usé QT ni OpenGL así que hay muchas cosas para aprender todavía.
Petruza wrote:
Jaja te mataron con cantidad de estudio o te mataron por haber elegido un emu como tesis?
Yo lo colgué por ahora, en parte por un nuevo laburo que me ocupa más tiempo, y en parte porque como llegué a tener lo mínimo indispensable para correr una ROM y al probarlo las ROMs se cuelgan todas salvo una demo con una pantalla estática, ahora tengo que desarrollar un debugger.
Empecé uno con QT y OpenGL (mi emu antes usaba SDL) y en eso quedó, el tema es que es casi como todo un proyecto aparte, nunca usé QT ni OpenGL así que hay muchas cosas para aprender todavía.
me mataron con el estudio! pero de todas maneras estoy en 3º, con lo cual tengo tiempo de terminar el emu para algun TP que me pidan para 4º año. YA quiero terminarlo y tenerlo andando, no solo porque siempre fue un objetivo que me propuse como programador, sino porque quiero presentarlo en la facu y ¿romper todos los esquemas? jajajaja este es el tipo de cosas que me gusta programar, cosas duras... programar front-ends y enlatados es siempre lo mismo
Si si, coincido, por eso yo que laburo con PHP quise programar algo heavy metal como un emulador.
Por lo de terminarlo ya, yo diría que lo más satisfactorio es recorrer el camino, no llegar a la meta.
Yo me introducí al nesdev en el 2006, soy de Chile. Pero por años con las preocupaciones diarias y el tiempo olvidé lo que aprendí. Pero ahora estoy retomando y qué bien que hay gente de habla hispana en esta página, aunque no tengo problemas con el inglés.
Saludos!
bueno gente, metamole pilas y tratemos de ayudarnos entre todos! estos grindos a veces me la complican con el ingles y no termino de captar todo, es por eso que mi emulador avanza poco y nada cada vez que lo agarro.
que no se corte la buena onda! (:
Si, hay que mancomunar esfurezos.
Ya que no creo que podamos ponernos de acuerdo en codear un emu entre todos, básicamente porque vos lo estás haciendo en C# y yo en C++ y me parece que con distintos perfiles, pero estaría bueno que vayamos informándonos de qué está haciendo cada uno y nos contemos cómo resolvimos cada parte y compartamos código para ir ayudándonos.
Yo en este momento por diversos motivos no estoy laburando en en el emu, pero cuando me ponga, te aviso.
Petruxxxa! long time no see ^^
yo pase todo el codigo a C# + SDL y ¿la verdad? un desastre...
o sea: no es que sea malo, pero me parece que tiene muchas vueltas al dope.
corro el Balloon Fight y despues de la pantalla de titulo se me clava y no dibuja mas nada, mientras que utilizando el mismo codigo en C/C++ + Allegro, anda como piña.
la verdad no se que onda, pero supongo que es el SDL.
¿vos Petruzin lo estabas haciendo con SDL tambien, or what?
saludos para todos (:
Noo, quedate tranquilo que el SDL anda fenómeno, hay un par de juegos comerciales que lo usan y además el principal aval es el ScummVM.
Yo al emu lo diseñé desacoplando lo que es el engine de lo que es la visualización, sonido, input, etc.
Es decir el engine es puro C++ totalmente independiente de sistema operativo y de toda librería, gráfica o de lo que sea.
La idea es que pueda tener distintos "plugins" para visualización, que pueden estar hechos distintas librerías, opengl, sdl, o lo que fuera.
Por ahora para testearlo, sí, estoy usando SDL, de hecho uso la versión 1.3 que es Beta y se supone que no es del todo estable, pero como soporta múltiples ventanas, me sirve para hacer el debugger.
La verdad que lo que hice hasta ahora con SDL anduvo perfecto, como librería me parece de lo mejor que hay.
Acá podés ver que algo pude llegar a renderear con SDL:
Quizás C# no ande bien con SDL
Aquí otro hispanoparlante, de España
Tengo 16 y años, y aunque se me da bien el inglés, cuando tengo que escribir algo casi siempre me acabo haciendo un lío. Siempre he sido más de mirar simplemente xD
socram8888 wrote:
Aquí otro hispanoparlante, de España
Tengo 16 y años, y aunque se me da bien el inglés, cuando tengo que escribir algo casi siempre me acabo haciendo un lío. Siempre he sido más de mirar simplemente xD
Hola, te interesaria ayudarme con mi framework para la nes en NESHLA?
http://sourceforge.net/projects/neshlagamefw/
Sobre lo que te he dicho en el MP, se me ha olvidado una cosa: si alguna vez quieres documentación o cualquier cosa sobre hardware (ya sea diseño de Hardware o probar algún programa en una NES o Famiclon real), contacta conmigo, que para esas cosas no tengo ningún problema
socram8888 wrote:
Sobre lo que te he dicho en el MP, se me ha olvidado una cosa: si alguna vez quieres documentación o cualquier cosa sobre hardware (ya sea diseño de Hardware o probar algún programa en una NES o Famiclon real), contacta conmigo, que para esas cosas no tengo ningún problema
Muy bien, merci
como crecio este hilo! me sumo a la causa, cualquier cosa en la que pueda ayudar aquí me tienen!
he vuelto a la carga con mi viejo emulador, el cual otra vez habia abandona por falta de tiempo. ahora lo estoy reescribiendo en clases de C++ y utilizando Allegro para los graficos.
abrazo para todos!
Bien por el C++ pebete, pero haceme caso con SDL 1.3 !! rulea
obviamente q le pasa el trapo a Allegro, pero como es lo q se usar y por ahora me sienta bien sigo con esa libreria. despues, cuando un emulador un poco mas pro le mejoro con SDL (:
Argentino, de aca también colaborando con el habla hispana.
Yo vengo haciendo el emulador desde el 2004. Lo dejé por obligaciones, pero estoy de vuelta.
Anes wrote:
Argentino, de aca también colaborando con el habla hispana.
Yo vengo haciendo el emulador desde el 2004. Lo dejé por obligaciones, pero estoy de vuelta.
Qué bueno, contá:
1- lenguaje
2- sistema operativo
3- librerías
4- estado de avance
( todos pueden contestar )
Petruza wrote:
Anes wrote:
Argentino, de aca también colaborando con el habla hispana.
Yo vengo haciendo el emulador desde el 2004. Lo dejé por obligaciones, pero estoy de vuelta.
Qué bueno, contá:
1- lenguaje
2- sistema operativo
3- librerías
4- estado de avance
( todos pueden contestar )
1 - C (Visual Studio)
2 - Win32/Win64 (Desarrollado bajo Windows 7 x64)
3 - DirectX (DirectDraw, DirectSound, DirectInput) en fin Ninguna, todo metido dentro del exe hecho desde 0
4 -
- MAPPER 0 (por supuesto)
- UNROM, CNROM,
- MMC1
- MMC3 (parcialmente)
- Desensamblador (parcialmente también)
En tiempos pasados lo hice en Assembler (MASM) y C++ (VS), pero me quedé con el C.
Los otros tenían Sonido, pero decidí hacer el emulador de vuelta porque era un desastre, pero pronto le agrego sonido. Estoy esperando arreglar cosas del PPU.
Anes wrote:
1 - C (Visual Studio)
2 - Win32/Win64 (Desarrollado bajo Windows 7 x64)
3 - DirectX (DirectDraw, DirectSound, DirectInput) en fin Ninguna, todo metido dentro del exe hecho desde 0
4 -
- MAPPER 0 (por supuesto)
- UNROM, CNROM,
- MMC1
- MMC3 (parcialmente)
- Desensamblador (parcialmente también)
Ah, muy avanzado.
Cuántos y cuales juegos testeaste?
Cómo testeas y debugeas? con el desensamblador, con el debugger del visual studio?
En qué consiste el desensamblador?
Te pregunto porque yo programé lo mínimo necesario para correr un juego, básicamente las opcodes y un mínimo render, corrí un par de juegos y obviamente no anduvo ninguno. Así que ahora estoy haciendo un debugger gráfico para ver dónde se cuelgan los juegos.
Petruza wrote:
Anes wrote:
1 - C (Visual Studio)
2 - Win32/Win64 (Desarrollado bajo Windows 7 x64)
3 - DirectX (DirectDraw, DirectSound, DirectInput) en fin Ninguna, todo metido dentro del exe hecho desde 0
4 -
- MAPPER 0 (por supuesto)
- UNROM, CNROM,
- MMC1
- MMC3 (parcialmente)
- Desensamblador (parcialmente también)
Ah, muy avanzado.
Cuántos y cuales juegos testeaste?
Cómo testeas y debugeas? con el desensamblador, con el debugger del visual studio?
En qué consiste el desensamblador?
Te pregunto porque yo programé lo mínimo necesario para correr un juego, básicamente las opcodes y un mínimo render, corrí un par de juegos y obviamente no anduvo ninguno. Así que ahora estoy haciendo un debugger gráfico para ver dónde se cuelgan los juegos.
Creo que no te conviene escribir el código específico para un sólo juego. Emulá el CPU completoe (que no es tan díficil) primero, depués hacés un Render pixel por pixel básico y de ahí progresas.
He probado unos 100 mas o menos me corre un 85%.
Básicamente depuro con el Visual Studio, en realidad estoy usando el Visual C++ 2010 express con el Resedit (editor de recursos). Lo uso principalmente por las capacidades muy buenas de depuración en tiempo real que tiene. Aunque tengo el Visual Studio Original. Te dejo unos link que te pueden interesar:
6502:
http://users.telenet.be/kim1-6502/6502/proman.html
Éste de explica el 6502 de una forma sencilla y amigable, mucho mejor que los documentos esos tan exactos. El 6502.txt del Nesdev tiambién es un buen comienzo.
DirectDraw:
http://archive.gamedev.net/reference/articles/article1260.asp
http://archive.gamedev.net/reference/articles/article1270.asp
Podés usar directamente el el modo de colores de 32bits depth en DirectDraw. Mostrar píxeles (ahí en el artículo te muestra cómo mostrar píxeles usando coordenadas X e Y. Te sugiero que emprecés con esto, después optimizás el código.
Del CPU no te olvidés del nestest.nes para probar el CPU.
PPU:
Te aconsejo que empecés como todos con el de Yoshi (auque está desactualizado) para un panorama general. Después podés pasar al nintech.txt y depués al "2A03" reference. De todas formas así fue como hice yo.
En realidad cuando empecé lo hice por scanline, fui dando vueltas y preguntando en el NesemDev hasta que obtuve algo palpable.
Acordate que el pattern table son dos bytes, y que obiente el bit alto y el bit bajo del pixel, con esto te sobra para hacer un render de 4 colores para ver algo en la pantalla (sobre todo el nestest.nes para que testees el CPU. Después más adelante te preocupas por los attribute table.
Tomá como referencia un juego simple: "Popeye" se me viene a la cabeza y metele hasta que veas algo en pantalla. En el switch(opcode)
agrega un default para que veas los opcodes que estan fallando.
Aunque sea una pregunta boluda, preguntala en el Nesdev, es la mejor forma de avanzar.
En fin así mas o menos empecé yo, que hay otras formas no lo niego, pero algo de resultado me dió.
Si querés agregame al messenger o mandame un mail y charlamos.
Suerte.
me gustaria agregar una pequeña cosita: el "6502.txt" tiene algunos errores en los numeros de los opcodes. en el foro se dice que este ->
http://www.obelisk.demon.co.uk/6502/reference.html es el mejor documento sobre el 6502 de la web, ya que no tiene errores (cabe destacar que el documento es sobre el 6502 original, y NO sobre el 6502 que usa la NES, que tiene unas pequeñas variaciones). un sitio en el que te pueden ayudar muchisimo es este ->
http://forum.6502.org/, un foro hecho por gente que la tiene mas que clara con el 6502.
Anes wrote:
Creo que no te conviene escribir el código específico para un sólo juego...
Me expresé mal, no es que apunté a que corra un juego específico, sino que le di soporte apenas para que pudiera correr cualquier juego con mapper 0.
Implementé todos los opcodes documentados, y los testeé.
Con respecto al render, en realidad como estoy desarollando el engine exclusivamente, no tiene render per se, simplemente emula el estado de la memoria de video, nametables, etc. y eso luego es tomado por algún plugin que se ocupa del render.
Por ahora y para testearlo hice un plugin muy básico que renderea no por scanline ni pixel, sino por sprite. Esto funciona, obviamente que los juegos que usan scroll con pantalla partida o algún otro truco entre scalines, se verán mal, pero para testear juegos sin scroll en pantalla fija como por ejemplo balloon fight, sirve.
El emulador logró mostrar una pantalla estática con la intro del Zelda, que es una demo que alguien posteó en este foro, pero cuando pruebo juegos de verdad, crashean en algún lugar, y me parece medio tedioso usar un debugger normal para debugear el juego, por eso quiero desarrollar un debugger visual para ver en qué estado está la memoria de video, nametables, sprites y demás
ehguacho wrote:
me gustaria agregar una pequeña cosita: el "6502.txt" tiene algunos errores en los numeros de los opcodes. en el foro se dice que este ->
http://www.obelisk.demon.co.uk/6502/reference.html es el mejor documento sobre el 6502 de la web, ya que no tiene errores (cabe destacar que el documento es sobre el 6502 original, y NO sobre el 6502 que usa la NES, que tiene unas pequeñas variaciones). un sitio en el que te pueden ayudar muchisimo es este ->
http://forum.6502.org/, un foro hecho por gente que la tiene mas que clara con el 6502.
Sí ese docuemento es el más exacto pero no explica los modos de direccionamiento. Yo decía para alguien que recién está empezando ...
Quote:
Me expresé mal, no es que apunté a que corra un juego específico, sino que le di soporte apenas para que pudiera correr cualquier juego con mapper 0.
Implementé todos los opcodes documentados, y los testeé.
Con respecto al render, en realidad como estoy desarollando el engine exclusivamente, no tiene render per se, simplemente emula el estado de la memoria de video, nametables, etc. y eso luego es tomado por algún plugin que se ocupa del render.
Por ahora y para testearlo hice un plugin muy básico que renderea no por scanline ni pixel, sino por sprite. Esto funciona, obviamente que los juegos que usan scroll con pantalla partida o algún otro truco entre scalines, se verán mal, pero para testear juegos sin scroll en pantalla fija como por ejemplo balloon fight, sirve.
El emulador logró mostrar una pantalla estática con la intro del Zelda, que es una demo que alguien posteó en este foro, pero cuando pruebo juegos de verdad, crashean en algún lugar, y me parece medio tedioso usar un debugger normal para debugear el juego, por eso quiero desarrollar un debugger visual para ver en qué estado está la memoria de video, nametables, sprites y demás
Está bien, cada uno tiene su método. Yo no niego que en el futuro voy a necesitar un debugger mas o menos así.
ehguacho wrote:
Si, sobre ese doc basé mi cpu
Petruza wrote:
ehguacho wrote:
Si, sobre ese doc basé mi cpu
En realidad, los cpu test de Blargg en el readme tienen una matriz de los ciclos de los opcodes, de ahí yo los tomé directamente e hice una matriz en C.
y la ejecución de las instrucciones, la hacés con punteros a función guardados en esa matriz?
si están compadre, solo que no están en ESA página en particular. es cuestión de buscarla en el index jeje
http://www.obelisk.demon.co.uk/index.html
no creo que en este momento te haga falta la info que pueda brindarte ese sitio, simplemente contesto por si el día de mañana alguien lo lee
Petruza wrote:
y la ejecución de las instrucciones, la hacés con punteros a función guardados en esa matriz?
segun lei en algunos documentos sobre emulacion, ese metodo tiene la mejor performance pero puede llegar a tirar un error de sobrecarga en la pila de llamadas. ¿sera cierto eso? ¿o con la capacidad de los procesadores de hoy uno deberia despreocuparse de algo asi?
No veo por qué podría haber problemas con la pila. Si se llamaran recursivamente podría ser, pero no tiene sentido.
Cada CPU emulado debería llamar sólo a una instrucción a la vez
Petruza wrote:
No veo por qué podría haber problemas con la pila. Si se llamaran recursivamente podría ser, pero no tiene sentido.
Cada CPU emulado debería llamar sólo a una instrucción a la vez
lo mismo pense yo, pero queria sacarme la duda de todas maneras jeje
Petruza wrote:
y la ejecución de las instrucciones, la hacés con punteros a función guardados en esa matriz?
No, de ahí tomo los ciclos nomás, no uso puntero a funciones, excepto para los mappers.
Mapeo la memoria del CPU y PPU.
ehguacho wrote:
Petruza wrote:
No veo por qué podría haber problemas con la pila. Si se llamaran recursivamente podría ser, pero no tiene sentido.
Cada CPU emulado debería llamar sólo a una instrucción a la vez
lo mismo pense yo, pero queria sacarme la duda de todas maneras jeje
No hay problemas con la pila, como dice Petruza si fueran recursivas sí, pero una sola función no.
Anes wrote:
Petruza wrote:
y la ejecución de las instrucciones, la hacés con punteros a función guardados en esa matriz?
No, de ahí tomo los ciclos nomás, no uso puntero a funciones, excepto para los mappers.
Mapeo la memoria del CPU y PPU.
Alguien de aquí quiere compartir su código?
Anes wrote:
En realidad, los cpu test de Blargg en el readme tienen una matriz de los ciclos de los opcodes, de ahí yo los tomé directamente e hice una matriz en C.
yo hice exactamente lo mismo con el famoso M6502 de Marat Fayzullin
Quote:
yo hice exactamente lo mismo con el famoso M6502 de Marat Fayzullin
Tené cuidado con esos documentos. Están medios desactualizados. No te recomiendo que lo saqués de ahí. Por supuesto no te vas a poner a comparar opcode por opcode para ver si son iguales, pero los test de blargg se saben que sí están correctos.
edit: Acordate también del page crossing.
yeap, lo tuve en cuenta en su momento, es por eso que despues baje los tests de blarg de la CPU y en todos saque "muy bien te felicito" (:
Hola buenas. Da la casualidad que desde hace algunas semanas estoy siguiendo un tutorial básico creado por el usuario
wave o
sewave (dependiendo el foro).
Empezamos muy activamente en el foro de El Otro Lado, en la sección Consolas Clásicas
http://www.elotrolado.net/hilo_tutorial ... co_1694073
Debido a la poca acogida, decidimos trasladarlo todo a mi foro de la NES, RetroNES, que no se si la conoceréis. El nuevo hilo tiene esta dirección:
http://www.retrones.net/foro/viewtopic.php?f=1&t=8633
Os pongo unas cuantas imágenes de los progresos que estoy haciendo gracias a las enseñanzas de
wave, que ademas se esta trabajando un framework basado en NESHLA. A parte, para la cración de pantallas y sprites uso el NES Screen Tool
Quote:
Ejemplo 1: Imagen estática de Zelda 3.- Elegí una pantalla del videojuego
The Legend of Zelda: A link to the past de SNES para pasarla a la NES y ver que tal quedaría dadas sus limitaciones. Para ello hice una captura del juego y mediante la herramienta NES Screen Tool recree lo máximo posible los objetos, tiles, etc... que aparecían en la NES.
- Hay que tener en cuenta que solo podemos jugar con 4 paletas de 4 colores, uno de ellos compartido y que se usa como color predominante, fondo, etc... Ademas, la pantalla realmente esta dividida por sprites de 2x2 tiles y tienen que compartir la misma paleta, por lo cual se nos complica mucho mas las cosas. Podéis comprobarlo vosotros mismos.
- Os dejo la muestra y la rom resultante. Como está creada bajo el codigo de uno de los primero ejemplos del tutorial, se conserva el efecto de aumentar o bajar el brillo usando la cruceta arriba o abajo.
ROM:
http://www.elotrolado.net/download/file.php?id=71254 Quote:
Ejemplo 2: Imagen estática de SMW
- Este ejemplo es igual que el anterior pero con el juego Super Mario World de SNES
- Fijaos en el detalle de los límites de la NES. Mientras en la SNES podemos jugar con hasta 5 planos diferentes, en la NES solo hay dos: El fondo y los sprites principales. Representar el fondo sin consumir toda la tabla de tiles que nos deja el banco de NES es complicado, por eso muchas en muchas ocasiones prefiero hacer algo parecido al original y no igual. Que de "el pego"
ROM:
http://www.elotrolado.net/download/file.php?id=71262 Quote:
Ejemplo 3: Imagen estática con metaSprite en movimiento
- Aquí la cosa se pone mas interesante. Volvemos al
The Legend of Zelda: A link to the past he incluimos un sprite de Link muy rudimentario. Los sprites solo pueden llevar una paleta de 4 colores y encima uno de ellos tiene que ser transparente para que se vea bien en pantalla. Así pues, yo aquí he jugado con el
transparente + negro + verde + marrón.
- Para ello he hecho uso de los metaSprites que hablamos en el tutorial.
ROM:
http://www.elotrolado.net/download/file.php?id=71440Quote:
Ejemplo 4: Jugando con los metaSprites: Dos en uno.
- Dada la limitación de colores por sprite (3 mas transparente) he hecho uso de un viejo truco que se veía en otro juegos de NES para que los sprites, sobre todo de los protagonistas, parezca que tienen mas colores. Para ello he usado dos metaSprites encajándolos uno encima del otro y ocupando las partes sin colorear de uno por los del otro. Es algo complejo dado que tienes que tener muy claro con la herramienta de creación de tiles que partes ocupara uno y cuales el otro para que cuando encajen, queden perfectos.
- Este truco se uso por ejemplo para poner el blanco de los ojos a Megaman o a Mario en Super Mario Bros. 2 entre otros. Yo aprovecho que puedo usar 3+1 para darle mas vida al sprite del Link, añadiéndole el color purpura y naranja al gorro y a la cara. El resultado es muy aceptable y mejor que el original.
- Lo malo es que consumes mas recursos de la NES pues estas moviendo mas metaSprites a la vez, no solo uno. Ademas, es muy complejo animar todos a la vez y no volverte loco. Si vais ha hacer esto, planteároslo bien desde el principio como hacerlo por que os podéis volver tarumbas.
- También he hecho que Link solo se mueva cuando pulsamos la cruceta.
ROM:
http://www.elotrolado.net/download/file.php?id=71495Quote:
Ejemplo 4: Esta vez con el Super Mario World:
- He intentado no complicarme tanto y usar solo dos metaSprites para dibujar a Mario en vez del cacao que tenia montado con Link.
- Mario tiene tres frames: Quieto, iniciando andar y andando. Animándolo parece que anda a trote. Ademas he añadido que solo lo haga hacia la izquierda y hacia la derecha y se anime solo cuando pulsamos cualquiera de estas direcciones.
Objetivos:
- Que cuando deje de pulsar se ponga en el frame de quieto. No se si habra alguna sentencia contraria a
mantained que interprete esto.
- Que cuando pulse B la velocidad de desplazamiento sea mas rápida y luego vuelva a la normalidad cuando deje de pulsar.
Por ahora solo eso. Dejo la primera rom de demostración y una captura.
ROM a:
http://www.megaupload.com/?d=ZYKTJ1T8ROM con control de velocidad añadido:
http://www.megaupload.com/?d=YDN73CEA
Espero que sea de vuestro agrado
Muy interesante, pero explica un poco más de qué va tu proyecto, cuál es el objetivo? retro-portar juegos de SNES a NES? algún juego en particular? sólo hacer screenshots?
Por ahora estoy aprendiendo pues mis conocimientos son mínimos.
Seria interesante poder portar el Super Mario World o el Zelda de SNES a NES. Comprovaras que las imagenes son sreenshoots que monto con el NES Screen Tool, pero a los sprites de Mario y Link les estoy intentando dar vida.
Por ahora solo les estoy usando para poner a prueba los conocimientos que voy adquiriendo y que me va enseñando wave.
Mas adelante seguramente hagamos un juego completo, desde 0 y original, pero mientras tanto mis tutorias las desempeño probando cosas en estos dos juegos.
Los screenshots tuyos la verdad se ven muy bien, el proyecto está muy bueno.
Con respecto a las pantallas de Super Mario, la barra negra de arriba creo que se podría reemplazar por el color de fondo, azul en la primera y verde en la segunda, de esa forma se lograría imitar el overlay de las pantallas de SNES, no?
No quedaría bien, y aun mas, quedaría tan mal como la versión china que hicieron en su día del SMW para la NES.
Un despropósito.
Lo mio es muy mejorable, y se hará bien a su debido momento, pero no pienso poner el color de fondo del marcador según cuadre con que pantalla. Mejor dejarlo siempre negro.
ah porque las pusieron abajo, pero arriba no creo que quede muy mal.
Sólo una sugerencia.
Ahora Mario se mueve y controla bien: Anda, corre pulsando B, y se agacha.
Mmmm, lo de hacerle saltar me parecería una proeza XD XD XD ¿alguien sabe darme una idea de como se hace en otros juegos? ¿?
ROM:
http://www.megaupload.com/?d=UZYBW2AF
Arreglado el movimiento de Link. Ahora se mueve en todas las dirección, aunque cuando vas en diagonal, en algunos casos y dependiendo de como partías, la animación se queda parada.
ROM:
http://www.megaupload.com/?d=HKD97C2B
Bueno, la ultima rom demo que he hecho:
- Un intento de recreación del Super Mario World, con cambio de pantallas y con Mario moviéndose, corriendo y agachándose.
- Tiene algún fallo, como por ejemplo, cuando estas corriendo y coincide que la coordenada "x" de Mario se pasa del límite puesto para cambiar de pantalla, esta no cambia. En cuanto diseñemos un sistema de colisiones se solucionará este fallo.
ROM demo:
http://www.megaupload.com/?d=KXZ5LXPR
Saludos desde Mexico!
Yo ando tratando de programar tambien para la NES. Ahorita estoy usando el lenguaje C. Estaba viendo algunos ejemplos que han hecho estos colegas:
http://shiru.untergrund.net/software.shtml
http://kkfos.aspekt.fi/projects/nes/
De hecho tambien tienen cuenta aqui por si no sabian.
Bueno luego publico un avance de mi primer proyecto.
Creo necesitare alguien con la musica, aunque no creo en el trabajo gratis, jej.
Bueno, saludos a todos los que hablan español!
Paso a presentarme por aca. Soy Pablo de Argentina y me registre mas que nada para ver si alguien me da una mano con un proyecto que tenemos con un amigo para convertir famiclones de Pal-N a NTSC sin cambiar el ppu, descubrimos que con puentear un pin en los ppu de estos andan a 60hz pero no logramos que muestre bien los colores. Cuando pueda doy mas detalles.
Hola! No estoy seguro si aun hay gente por aqui pero de todas formas me presento;
Soy Moneyspider_Todd, de chile, periodista y escritor y por sobretodo (y la misma razón por la que estoy aqui) curioso. Encontré este foro buscando info sobre gente que desarrolla hombrew o hacks para SNES y quise ver que hacian y que podia aprender al respecto.
Además que tengo una idea. Nada concreto, solo una idea, y queria ver que tan viable era desde la voz de alguien que se maneje en el tema.
Saludos!
drake7018 wrote:
Paso a presentarme por aca. Soy Pablo de Argentina y me registre mas que nada para ver si alguien me da una mano con un proyecto que tenemos con un amigo para convertir famiclones de Pal-N a NTSC sin cambiar el ppu, descubrimos que con puentear un pin en los ppu de estos andan a 60hz pero no logramos que muestre bien los colores. Cuando pueda doy mas detalles.
¿Y cuál es el objetivo del proyecto?
Holaa a todos! = 3 un gusto que una tremenda pagina de programadores de habla inglesa tenga una seccion en insentive a programadores de los quienes el ingles no es su idioma nativo.
Me conocen como vil en varias comunidades, en la que mas he estado involucrado hasta ahora es en
http://battleofthebits.org/ donde participo en competencias mundiales en creacion de chiptunes; voy poniendome mas a contexto a medida de que pasa el tiempo; empeze sin saber nada acerca de composicion ni chips en general x D le recomiendo meterse en esta comunidad a todo aquel quien quiera envolverse en la creacion de chiptunes para casi cualquier consola de videojuegos; son todos calidamente amigables y estan siempre predispuestos a ayudar, habemos pocos quienes nos manejamos en el habla hispana ahi PERO yo definitivamente estoy al tanto a cualquier ayuda que alguien necesite respecto a la creacion de musica de videojuegos = ) aqui les dejo mi usuario para contactarme = D;
http://battleofthebits.org/barracks/Profile/vilxdryad/Respecto a mi, soy un gran fan de los rpgs retro; como las series Ys, Lufia, la trilogia de cielo y tierra; sobre todo Terranigma, Castlevania - Symphony of the Night, y claro; esta futura obra maestra que pretende llevar el Mega Man X de super nintendo a un rpg de mundo abierto;
https://www.youtube.com/watch?v=tYEXlvJ1MJ0Actualmente, estoy aprendiendo Assembly 6502 para empezar a crear homebrews en la NES, hasta ahora este es el mejor tutorial que he leido por lejos;
http://nintendoage.com/pub/faq/NA/index ... _out.html#y este es un buen catalogo con todas las Operaciones en assembly 6502 bien explicadas;
http://homepage.ntlworld.com/cyborgsyst ... 2/6502.htmEncantado de conocerlos mejor =' 3 ojala pueda alcanzar a ver los fructiferos proyectos de todos ustedes =w=
vilxdryad wrote:
Actualmente, estoy aprendiendo Assembly 6502 para empezar a crear homebrews en la NES, hasta ahora este es el mejor tutorial que he leido por lejos;
http://nintendoage.com/pub/faq/NA/index ... _out.html#y este es un buen catalogo con todas las Operaciones en assembly 6502 bien explicadas;
http://homepage.ntlworld.com/cyborgsyst ... 2/6502.htmEncantado de conocerlos mejor =' 3 ojala pueda alcanzar a ver los fructiferos proyectos de todos ustedes =w=
Genial. Hola vilxdryad
Me quito el sombrero ante las ganas que le echas para aprender assembly 6502
Yo ahora mismo estoy sumergido en un proyecto de NES escrito en C usando las librerias CC65 y shiru que van genial. Me resulta mucho más facil de desarrollar sin pegarme un tiro en la cabeza, jajaja
Además, en este foro suelen ayudar bastante los usuarios. Date una vuelta por Homebrew Project, que hay cosas interesantes.
Bienvenido, a ver si nos juntamos unos pocos mas por aqui.
Yo estoy intentando hacer unas extensiones para las librerias de shiru para añadir mas cosillas y hacer un framework con el que hacer mas facilmente todo para la NES. A ver si llego a hacer con el algo!
Wave wrote:
Bienvenido, a ver si nos juntamos unos pocos mas por aqui.
Yo estoy intentando hacer unas extensiones para las librerias de shiru para añadir mas cosillas y hacer un framework con el que hacer mas facilmente todo para la NES. A ver si llego a hacer con el algo!
Madre mía, llevas con ese proyecto desde 2011.
Ahora, lo de las extensiones de shiru mola. Las librerias shiru estan genial, pero se le echa en falta más cosas.
Diskover wrote:
Wave wrote:
Bienvenido, a ver si nos juntamos unos pocos mas por aqui.
Yo estoy intentando hacer unas extensiones para las librerias de shiru para añadir mas cosillas y hacer un framework con el que hacer mas facilmente todo para la NES. A ver si llego a hacer con el algo!
Madre mía, llevas con ese proyecto desde 2011.
Ahora, lo de las extensiones de shiru mola. Las librerias shiru estan genial, pero se le echa en falta más cosas.
Jaja, si, incluso antes, ahora me he pasado a ensamblador normal + C.
Que cosas echas tu en falta? A ver si las tengo pensadas o no.
Holaa Diskover y Wave, hahah gracias =w= aprender Assembly 6502 no es tan cabron como uno puede decir que es a primera vista x D usando esta misma base para aprender en todos los assemblies ayuda;
- Aprenderse las OPeraciones del assembly
- Aprender las instrucciones de arranque del sistema en el que usas assembly
con eso ya tienes la mitad del trabajo hecho en todos los Assemblies =w= por suerte; el Assembly 6502 de la NES goza de un total de 56 operaciones nada mas = D 56 de las cuales solo 10 usaras frecuentemente; Y 10 que literalmente jamas veras x D la NES es el mejor lugar para introducirse al mundo del Assembly = 3
Respecto a tu actual proyecto, Diskover; estoy deseoso de verlo! = D es la primera vez que me llega el nombre Shiru, algun enlace donde me pueda enterar mejor? =O=
Wave, seguro eso ayuda a muchos a introducirse en la creacion de juegos de la NES, me parece una idea maravillosa! encantado sere un usuario de ese framework cuando sea lanzado = 3
Ustedes son geniales! =' )
vilxdryad wrote:
Holaa Diskover y Wave, hahah gracias =w= aprender Assembly 6502 no es tan cabron como uno puede decir que es a primera vista x D usando esta misma base para aprender en todos los assemblies ayuda;
- Aprenderse las OPeraciones del assembly
- Aprender las instrucciones de arranque del sistema en el que usas assembly
con eso ya tienes la mitad del trabajo hecho en todos los Assemblies =w= por suerte; el Assembly 6502 de la NES goza de un total de 56 operaciones nada mas = D 56 de las cuales solo 10 usaras frecuentemente; Y 10 que literalmente jamas veras x D la NES es el mejor lugar para introducirse al mundo del Assembly = 3
Respecto a tu actual proyecto, Diskover; estoy deseoso de verlo! = D es la primera vez que me llega el nombre Shiru, algun enlace donde me pueda enterar mejor? =O=
Wave, seguro eso ayuda a muchos a introducirse en la creacion de juegos de la NES, me parece una idea maravillosa! encantado sere un usuario de ese framework cuando sea lanzado = 3
Ustedes son geniales! =' )
Hombre, como no. De Shiru tienes su propia web:
https://shiru.untergrund.net/ y una serie de ejemplos programados en C para usar con el compilador CC65 que incluye la propia librería de creada por Shiru, neslib, que facilita mucho las cosas.
Tambien puedes guarte por el usuario dougeff que tambien tiene su propia página/tutorial
https://nesdoug.com/ donde enseña a programar en C con el compilador CC65.
Además, de los Mojon Twins (españoles) tienes tres juegos de NES con el código compartido desarrollados gracias a la librería de Shiru. Lo malo es que tienen bastante nivel y yo por lo menos no les entiendo ni papa.
Sobre mi proyecto, es un simple juego de accion con toques de RPG que poco a poco voy dando forma.
Wave wrote:
Diskover wrote:
Wave wrote:
Bienvenido, a ver si nos juntamos unos pocos mas por aqui.
Yo estoy intentando hacer unas extensiones para las librerias de shiru para añadir mas cosillas y hacer un framework con el que hacer mas facilmente todo para la NES. A ver si llego a hacer con el algo!
Madre mía, llevas con ese proyecto desde 2011.
Ahora, lo de las extensiones de shiru mola. Las librerias shiru estan genial, pero se le echa en falta más cosas.
Jaja, si, incluso antes, ahora me he pasado a ensamblador normal + C.
Que cosas echas tu en falta? A ver si las tengo pensadas o no.
Hombre, no estaría de más tener un engine para el scroll por ejemplo, o algo básico para las colisiones.
Diskover wrote:
Hombre, no estaría de más tener un engine para el scroll por ejemplo, o algo básico para las colisiones.
Mi idea es hacer algo el problema es que no puede ser muy "generico" porque es algo muy muy ligado a como se haga el juego y las colisiones por ejemplo consumen mucho tiempo.
Veremos en que acaba la cosa.
Wave wrote:
Diskover wrote:
Hombre, no estaría de más tener un engine para el scroll por ejemplo, o algo básico para las colisiones.
Mi idea es hacer algo el problema es que no puede ser muy "generico" porque es algo muy muy ligado a como se haga el juego y las colisiones por ejemplo consumen mucho tiempo.
Veremos en que acaba la cosa.
Dale caña. Yo sigo con mi proyecto.
hola, alguien podrá explicarme como funciona el sonido en famicom? o si tienen algunos tutoriales en español?
bazza wrote:
hola, alguien podrá explicarme como funciona el sonido en famicom? o si tienen algunos tutoriales en español?
Descárgate
Famitraker, es el programa con el que se hacen las melodías.
No tengo tampoco mucha idea, que conste, pero enredando pude hacer alguna música para mi juego The Banketh.
Básicamente lo primero que hay que hacer es crear los instrumentos, darles volumen, frecuencia, etc....
Luego tienes que ir jugando con los cinco canales de sonido para ir sacando melodías. Cada tecla del teclado da una nota. Hay que jugar con ello.
Hola gente, soy de Chile. ¿Conocen alguna comunidad hispana de desarrollo de emuladores de nintendo?
acá podes hablar de eso. a mi me interesa pero no hay mucha comunidad en castellano