サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ドラクエ3
fabiensanglard.net
Last week's article discussed how the Super Nintendo's Video system feeds the TV's CRT. Today I'll summarize what I understand of the hardware generating these graphics. A precious resource is Jonathon Donaldson's schematics of the SNES. If you have a large monitor, I recommend to take a minute and look at it in fullscreen to appreciate it in all its glory. I find this schematics so beautiful that
One of the remarkable characteristics of the Super Nintendo was the ability for game cartridges (cart) to pack more than instructions and assets into ROM chips. If we open and look at the PCBs, we can find inside things like the CIC copy protection chip, SRAM, and even "enhancement processors". The copy-protection mechanism of the SNES is something I already dig into in my 10NES article. It works
I recently had to ramp up on the topic of mDNS, starting from knowing next to nothing about it. It was not hard to find the motivation to learn about a technology which makes my life easier. From discovering AppleTV, Chromecast, AirPlay, and wireless printers, mDNS it a good thing. However, I had trouble finding answers to some of my questions. There is definitely learning material out there but i
Introduction → I remember how pleasant it was to learn to program in C. There were so many good books explaining not only the language but also the standard library. I devoured both The C Programming Language (K&R) by Kernighan/Ritchie and The Standard C Library by P.J. Plauger. Then came Expert C Programming by Van der Linden and finally C: A Reference Manual by Harbison and Steele. It was an equ
Readers occasionally request which static HTML generator is used by fabiensanglard.net, and if they can take the same stylesheet/ fonts to start their own blog. I usually send back the whole 134 lines of gen.php[1] and invite them to copy whatever they need to get started[2]. I also add a, somewhat unsolicited, piece of advice. Writers who are getting started may not need any of this stuff. All yo
While I was studying Capcom's CPS-1, I found myself authoring many tools. I combined them together to make a SDK called ccps. The name is a portmanteau between cc, the C compiler and CP-System, the name of the machine before Capcom introduced the CPS-2 in 1993. Building a game for a CPS-1 is a tedious process which requires to produce four sets of ROMs. There are two CPUs (one running the game log
This article is part of a series about Street Fighter II and the CPS-1. It is recommended to read the previous entries before reading this one. If you are interested in video-games hardware, the arcades of the 80's are the source of endless entertainment. During that decade each game was designed from scratch with a new motherboard featuring various combinations of processors. Game developers re-i
The late 90s saw the emergence of Capcom in the world of arcades. The Osaka based company seemed to produce one hit after another with Ghouls'n Ghosts in 1988, Final Fight in 1989 and Street Fighter II in 1991 among a myriad of other excellent games. During this era, a video-game enthusiast could not go to an arcade without seeing multiple Capcom cabinets, proof of their popularity with both playe
There is a playful way to study the architecture of computers of the past. Find a piece of software you know well and try to find out how it was ported to these machine you don't. A good choice would be DOOM. id Software's 1994 mega-hit has been ported to everything. It is designed around a core with no layering violations. It is usually easy to find and read the implementation of its six I/O sub-
I have kept myself busy with the Game Engine Black Books and I have plenty of news. Most importantly, they have been revised. The DOOM book is now in version 1.1 while the WOLF3D book is entering v2.1. And there is more. High-quality, premium colors printouts are available. Both books are available as 300dpi PDFs. Spanish and Korean translations are in the work. I am releasing the LateX source cod
"He's done it again!" was my first thought as I looked at the back of a postcard sized Pixar flier[1] which was covered in code. In the lower right corner, the blob of statements and expressions had been signed by none other than Andrew Kensler. For those who are not familiar with him, Andrew is the programmer who came up with the 1337 bytes Business Card Raytracer around 2009. This time Andrew pr
While I was writing the Wolfenstein 3D book[1], I wanted to demonstrate how much of a handicap it was to work without floating points. My attempts at understanding floating points using canonical[2] articles[3] were met with resistance from my brain. I tried to find a different way. Something far from $(-1)^S * 1.M * 2^{(E-127)}$ and its mysterious exponent/mantissa. Possibly a drawing since they
I enjoy reading a lot of source code and after 15 years in the field I feel like I have seen my fair share. Even with a full-time job, I still try to spare evenings here and there to read. I don't see myself ever stopping. It is always an opportunity to learn new things to follow somebody's mind process. Every once in a while I come across a solution to a problem that is so elegant, and so creativ
Every once in a while I receive an email from a fellow programmer asking me what language I used for one of my games and how I learned it. Here is an entry that list the best things to read about C. If you know of other gems, please email me or add a comment at the bottom of the page. The answer (you can skip this) As I mentioned it in a previous entry, all the commercial 3D engines I wrote so far
Decyphering the Business Card Raytracer I recently came across Paul Heckbert's business card raytracer. For those that have never heard of it: It is a very famous challenge in the Computer Graphics field that started on May 4th, 1984 via a post on comp.graphics by Paul Heckbert ( More about this in his article "A Minimal Ray Tracer" from the book Graphics Gems IV). The goal was to produce the sour
Let's Compile like it's 1992 I have been tinkering with the vanilla source code of Wolfenstein 3D from 1992. Even though it is more than 20 years old and has rotten for modern systems, you can still compile it if you recreate the environment. All you need is : Wolfenstein 3D source code. DosBox. The Compiler Borland C++ 3.1. Wolfenstein 3D shareware (for the assets). Setup filesystem Open a comman
Git Source Code Review: Overview Since its release in December 2005, git has taken over the software industry. In combination with GitHub it is now a powerful tool to publish and share code: From big teams (linux kernel, id Software, Epic Unreal) to single individual (Prince of Persia, Another world, Rick Dangerous), many have adopted it as their main SCM. I wanted to get a better understanding of
Doom3 BFG Source Code Review: Introduction (Part 1 of 4) >> On November 26, 2012 id Software released the source code of Doom 3 BFG edition (only one month after the game hit the stores). The 10 years old idTech 4 engine has been updated with some of the technology found in idTech 5 (the game engine running Rage) and it was an interesting reading session. I call it "idTech4 prime" since it is idTe
Duke Nukem 3D Code Review: INTRODUCTION (PART 1 OF 4) >> Since I left my job at Amazon I have spent a lot of time reading great source code. Having exhausted the insanely good idSoftware pool, the next thing to read was one of the greatest game of all time : Duke Nukem 3D and the engine powering it named "Build". It turned out to be a difficult experience: The engine delivered great value and rank
Quake 3 Source Code Review: Architecture (Part 1 of 5) >> Since I had one week before my next contract I decided to finish my "cycle of id". After Doom, Doom Iphone, Quake1, Quake2, Wolfenstein iPhone and Doom3 I decided to read the last codebase I did not review yet: idTech3 the 3D engine that powers Quake III and Quake Live. The engine is mostly an evolution of idTech2 but there are some interes
Doom3 Source Code Review: Interviews (Part 6 of 6) >> In this page are grouped most of the interviews I found about idTech4, sorted in reverse chronological order. Bonus: Articles referenced in the book "Masters of Doom" : 05/1996: The Wizard of Id 08/1996: The Ego at Id 06/1997: Beyond Doom and Quake 01/1999: Stormy Weather 12/1999: Good, Clean Quake 08/2004: The Age of Doom 1996-2007: All plans
Doom3 Source Code Review: Introduction (Part 1 of 6) >> On November 23, 2011 id Software maintained the tradition and released the source code of their previous engine. This time is was the turn of idTech4 which powered Prey, Quake 4 and of course Doom 3. Within hours the GitHub repository was forked more than 400 times and people started to look at the game internal mechanisms/port the engine on
"Another World" Code Review I spent two weeks reading and reverse engineering further the source code of Another World ("Out Of This World" in North America). I based my work on Gregory Montoir's "binary to C++" initial reverse engineering from the DOS executable. I was amazed to discover an elegant system based on a virtual machine interpreting bytecode in realtime and generating fullscreen vecto
The source code of Doom3 has been released three days ago :) ! I have started to read it and I will probably write a code review if enough people are interested. According to the README.txt the source code is building well with Visual Studio 2010 but it is not building at all on Mac OS X with XCode 4.0 ( it is actually very broken :( !). Here are the instructions to get it to run. Note : If you do
Quake 2 Source Code Review 1/4 I spent about a month in my spare time reading the source code of Quake II. It was a wonderful learning experience since one major improvement in idTech3 engine was to unify Quake 1, Quake World and QuakeGL into one beautiful code architecture. The way modularity was achieved even though the C programming language doesn't feature polymorphism was especially interesti
dEngine: iOS 3D renderer source code I've decided to release the source code of the OpenGS ES 1.0/2.0 renderers I wrote in the summer of 2009 nicknamed "dEngine". It was the first renderer to feature Shadow Mapping and Bump Mapping on iPhone at the time. Note that shadow mapping was achieved by packing the depth informations in a color texture but now you have access to GL_OES_depth_texture so you
Doom Iphone code review I took some time away from programming something I hope will become a really good shmup and read the source code of Doom for iPhone. I was very interested in finding out how a pixel oriented engine made the transition to openGL. Here are my notes, as usual I got a bit carried away with the drawings. Downloads Overall design Renderer: How Doom was working Renderer: How DoomG
This is my personal website, you can find here most of the code and ideas I came up with during my extra-professional time. 18/08/2024: Watching sunsets 09/08/2024: SNES: Sprites and backgrounds rendering 09/08/2024: How the SNES Graphics System works 29/07/2024: Designing the SNES Video System 21/04/2024: Inside the SNES cartridges 08/04/2024: Evolution of the SNES motherboard 01/04/2024: The hea
次のページ
このページを最初にブックマークしてみませんか?
『Fabien Sanglard's Website』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く