› Foros › Retro y descatalogado › Consolas clásicas
Donkey Kong 64 es conocido por ser el primer juego de Nintendo 64 en necesitar el Expansion Pak, un accesorio que aumentaba la memoria del sistema 4MB a 8MB. Según se decía en la publicidad -y en el caso concreto de Donkey Kong 64-, permitía mejores gráficos y escenarios más grandes con el lema "tan grande que hemos tenido que incluir el Expansion Pak para que quepa en él".
Chris Marlow, uno de los programadores del juego, ha desvelado en unos comentarios del director de Conker's Bad Fur Day que la razón real de esta media fue evitar un "error aleatorio que colgaba el juego sólo en la versión de 4MB", que aparentemente no ocurría con el Expansion Pak conectado.
Tras no poder localizar la causa del fallo, Rare estuvo forzada a incluir la expansión de memoria de manera gratuita con el juego "lo que costaba -a Rare- una fortuna". Chris Seaver explica que se pudo amortizar al año siguiente con Perfect Dark, un juego que "definitivamente lo necesitaba" para funcionar la mayoría de sus modos; gracias en parte al accidente de Donkey Kong 64, muchos usuarios ya no necesitaban adquirir el accesorio por separado -aumentando el número de posibles compradores del juego-.
NewDump escribió:El resident evil 2, no lo necesitaba ?
Eres programador? si me dices que no, ok entiendo el porque de la respuesta, si me dices que si...joder que suerte has tenido hasta el momento.gaula88 escribió:¿Un error aleatorio?. No tiene puto sentido. Los juegos no son magia, son programas normales y corrientes.
gaula88 escribió:¿Un error aleatorio?. No tiene puto sentido. Los juegos no son magia, son programas normales y corrientes.
Se sabe que los juegos de N64 se compilaban con el GCC, así que por supuesto tenían un gran debugger: el GDB. Se puede poner el programa a correr en una máquina (estación SGI, con IRIX, que es donde se programaban estas cosas) y debugearlo por SSH al mismo tiempo, con el "attach" del GDB. Cuando el juego peta, miras en qué línea estaba (porque lo has compilado con debugging symbols) y el estado de los registros de la CPU, y a poco que sepas lo que estás haciendo o alguien sepa lo que está haciendo la librería que estás usando, supongo que proporcionada por Nintendo, no es tan difícil saber por qué se cuelga.
La explicación que se da en el artículo es absurda y me parece insultante que esperen que nos creamos semejante mierdaca.
Baek escribió:NewDump escribió:El resident evil 2, no lo necesitaba ?
No es obligatorio pero con el expansion juegas en "HD", y se nota bastante.
NewDump escribió:Baek escribió:NewDump escribió:El resident evil 2, no lo necesitaba ?
No es obligatorio pero con el expansion juegas en "HD", y se nota bastante.
No es mas bestia Re2 que P. Dark ?
gaula88 escribió:¿Un error aleatorio?. No tiene puto sentido. Los juegos no son magia, son programas normales y corrientes.
gaula88 escribió:La explicación que se da en el artículo es absurda y me parece insultante que esperen que nos creamos semejante mierdaca.
gaula88 escribió: :¿Un error aleatorio?. No tiene puto sentido. Los juegos no son magia, son programas normales y corrientes.
gaula88 escribió:¿Un error aleatorio?. No tiene puto sentido. Los juegos no son magia, son programas normales y corrientes.
Se sabe que los juegos de N64 se compilaban con el GCC, así que por supuesto tenían un gran debugger: el GDB. Se puede poner el programa a correr en una máquina (estación SGI, con IRIX, que es donde se programaban estas cosas) y debugearlo por SSH al mismo tiempo, con el "attach" del GDB. Cuando el juego peta, miras en qué línea estaba (porque lo has compilado con debugging symbols) y el estado de los registros de la CPU, y a poco que sepas lo que estás haciendo o alguien sepa lo que está haciendo la librería que estás usando, supongo que proporcionada por Nintendo, no es tan difícil saber por qué se cuelga.
La explicación que se da en el artículo es absurda y me parece insultante que esperen que nos creamos semejante mierdaca.
gaula88 escribió:¿Un error aleatorio?. No tiene puto sentido. [...] parece insultante que esperen que nos creamos semejante mierdaca.
KFR escribió:Eh! gente no sus paseis hostieu que un comentario desafortunado hemos tenido todos y de ello se aprende...sesq...estos abuelos retro que se pican con nada
Memory
The final major component in the system is the memory, also known as RAM. The Nintendo 64 was one of the first modern consoles to implement a unified memory subsystem, instead of having separate banks of memory for CPU, audio, and video, for example. The memory itself consists of 4 megabytes of Rambus RDRAM (expandable to 8 MB with the Expansion Pak) with a 9-bit data bus at 500 MHz providing the system with 562.5 MB/s peak bandwidth. Rambus was quite new at the time and offered Nintendo a way to provide a large amount of bandwidth for a relatively low cost. The narrow bus makes board design easier and cheaper than the higher width data buses required for high bandwidth out of slower-clocked RAM types (such as VRAM or EDO DRAM); however, RDRAM, at the time, came with a very high access latency, and this caused grief for the game developers because of limited hardware performance.[44]
The unified memory subsystem of Nintendo 64 was another critical weakness for the machine. The RDRAM had very high access latency,[35] which nearly negated its high bandwidth advantage. In addition, game developers commented that the Nintendo 64's memory controller setup was poor. The R4300 CPU was severely limited at memory access since it had to go through the RCP to access main memory,[36] and could not use DMA to do so.
MyoCid escribió:gaula88 escribió:¿Un error aleatorio?. No tiene puto sentido. [...] parece insultante que esperen que nos creamos semejante mierdaca.
A mi me parece mas insultante tu manera de escribir en el foro y se te permite
Lo bueno de ese fallo es que regalaron el Expansion Pak, mereció la pena
Karaculo escribió:Para mi no es tan bestia me parece mejor el mario 64 y el expansion pack un artilugio desaprovechado.
AntoniousBlock escribió:MyoCid escribió:gaula88 escribió:¿Un error aleatorio?. No tiene puto sentido. [...] parece insultante que esperen que nos creamos semejante mierdaca.
A mi me parece mas insultante tu manera de escribir en el foro y se te permite
Lo bueno de ese fallo es que regalaron el Expansion Pak, mereció la pena
Parece que a algunos os importan mas las formas que el contenido, no me parece nada justo lo que dices. gaula88 es uno de los foreros con los aportes mas interesantes y que mas controla del foro en temas de unix y open source (lo se porque yo también me dedico a unix y huelo a estos cretinos a kilómetros ).
Si no te mola su forma de escribir lo ignoras y punto. Aunque te perderás de comentarios interesantes.
Por cierto, yo en parte estoy de acuerdo con lo dicho por gaula88, los errores mágicos no existen, eso es un mito que suelen repetir los desarrolladores del mundo closed source que están acostumbrados a lidiar con la "magia" pero técnicamente es una tontería grande como un pino. Si un programa deja de petar cuándo amplias la memoria pues seguramente se deba a que algun puntero se está yendo a tomar por culo y la ampliación de memoria no soluciona el problema sino que hace que la condición de error suceda mas tarde (ese "mas tarde" pueden ser años, a fines prácticos, nunca).
Con GDB e infinito tiempo puedes encontrar y solucionar cualquier bug como bien dice gaula88, pero el "detalle" que NO está teniendo en cuenta gaula88 en su comentario es que en el software comercial closed-source el enemigo número uno del programador es el tiempo y no la dificultad técnica (tampoco la corrección técnica les preocupa).
Los desarrolladores van a contra reloj y seguramente era mas rentable pagar el expansion pack que perder tiempo tratando de solucionar el bug con los retrasos en el lanzamiento que podría causar. En el mundo comercial lo único que importa es la pasta y las decisiones siempre son económicas. (lo cual es radicalmente diferente al mundo open source, por eso los desarrolladores open source piensan como gaula88 y los comerciales no)
Ufff, creo que te has "columpiado" un poquillo; se nota que sabes de lo que hablas pero no al 100%, porque quizá no has programado nunca firmware, código que maneja directamente el hardware. Te aseguro que el problema del que están hablando no será un puntero desbordado ni memoria desalineada ni nada de lo que te encuentras al programar software sobre un sistema operativo. Cuando estás peleando con IRQs que saltan esporádicamente o bien requieres llenar los buffer de video en cada NMI, te puedes encontrar con cosas surrealistas. Si luego además te metes con cosas como DMAs, HDMAs y demás, el resultado de ciertas combinaciones puede ser catastrófico.
Con GDB e infinito tiempo puedes encontrar y solucionar cualquier bug como bien dice gaula88, pero el "detalle" que NO está teniendo en cuenta gaula88 en su comentario es que en el software comercial closed-source el enemigo número uno del programador es el tiempo y no la dificultad técnica (tampoco la corrección técnica les preocupa).
Es lo que tiene ser nuevo, que no sabes como es la gente y las veces que ha sido baneado.
A mi me parece mas insultante tu manera de escribir en el foro y se te permite
Por eso mismo rare se creo su propio motor para 64
gaula88 escribió:
-Les faltaba tiempo y no daban con el error, el juego tenía que estar para ayer, etc.
Skullomartin escribió:Ademas el tema de incluir el Expansion de Regalo no era un problema, otros juegos de 64 lo iban a necesitar obligatoriamente, asi que ya se quitaron el problema de una vez por todas regalandolo.
FFantasy6 escribió:Skullomartin escribió:Ademas el tema de incluir el Expansion de Regalo no era un problema, otros juegos de 64 lo iban a necesitar obligatoriamente, asi que ya se quitaron el problema de una vez por todas regalandolo.
No es un regalo si te tenías que comprar un juego feo.
Skullomartin escribió:Es un regalo para la gente como yo, a la que les gustan los juegos "feos".
También merecemos cariño de vez en cuando.
En cuanto a turbo3d y los "muchos efectos" habria que indicar que las perdidas mas reseñables serian la correccion de perspectiva y una menor precision a la hora de calcular y filtrar los texturizados.Una de las características de N64 consistía en que su microprocesador de gráficos y sonido (el famoso Reality Co-Processor o RCP) era micropogramable, lo cual le ofrecía un nivel de versatilidad bastante alto, aunque claro, esto hacía que para conseguir sacar partido al RCP hacían falta unas herramientas buenas y sobre todo un nivel de programación bastante mas acusado (sin llegar a los extremos de Saturn y su pesadilla multihilo).
Al ser el RCP desarrollado por Silicon Graphics (SGI) el primer microcódigo que se facilitó para los programadores estaba claramente basado en las herramientas que se utilizaban en las estaciones de trabajo que ellos desarrollaban, lo que en un principio podría sugerir que este era una garantía de calidad, pero la verdad esque con el tiempo resultó ser bastante decepcionante, aparte de que la documentación que se facilitó a los programadores sobre como programar el RCP fue practicamente nula.
Este primer microcódigo se llamaba "Fast 3D" y no estaba especialmente pensado para la programación de videojuegos.Por ello, varias compañías recurrieron a la creación de sus propios microcódigos, que les permitieron obtener mejores resultados y que permitieron hacer cosas impensables para la época.
Ejemplos de esto son como siempre Rare, demostrando el poderío de la máquina con apartados técnicos sobresalientes para su tiempo, que hacian palidecer a las tristes conversiones multiplataforma de algunas third que nunca tomaron en serio a N64 o bien (lo mas probable) no les salia rentable dedicar tanto tiempo y dinero a desarrollar para la máquina de Nintendo.
Otro grán ejemplo de la utilización de microcódigo casero son Factor 5 (creadores de Rogue Squadron y Battle For Naboo) y Boss Games (World Driver Championship).
En el caso de Factor 5 se debe destacar el hecho de que lograron crear un micrócodigo que permitió un nivel de iluminación muy superior al de la versión de PC, y mediante diversas técnicas basadas en el streaming directo del cartucho como memoria para texturas se logro conseguir un nivel de poligonización bastante superior a los simples
100.000 polígonos que se destacan siempre en los datos técnicos de cada máquina.
Por otra parte exisie otro microcódigo bastante más avanzado denominado "Turbo3D" y que permitía a la N64 mostrar cerca de 600.000 polígonos de una calidad similar a los que mostraba PSX (es decir, sin muchos de los efectos que N64 usaba por defecto) pero desgraciadamente Nintendo nunca permitió que se utilizase en juegos comerciales, por lo que no hay ejemplos posibles de su utilización real en la consola.