How did Elite on the NES work?How Did the 10NES lockout chip work?How does the NES Light Gun work?How can I create a split-scroll effect in an NES game?How does the NES PlayChoice arcade's security EPROM work?NES repair - blue screenDid the NES do anything special to support coprocessors?NES PPU die photoIs screen wrap on the NES a fault of the OAM?When were other inexpensive computers able to recreate “The Amiga Juggler”?386SX, NES and how much did data lines really cost anyway?
Is there a way to generate a list of distinct numbers such that no two subsets ever have an equal sum?
How can Republicans who favour free markets, consistently express anger when they don't like the outcome of that choice?
"The cow" OR "a cow" OR "cows" in this context
Multiple options vs single option UI
How to write a column outside the braces in a matrix?
Can SQL Server create collisions in system generated constraint names?
Dynamic SOQL query relationship with field visibility for Users
Contradiction proof for inequality of P and NP?
Why didn't the Space Shuttle bounce back into space as many times as possible so as to lose a lot of kinetic energy up there?
Does a large simulator bay have standard public address announcements?
Can an Area of Effect spell cast outside a Prismatic Wall extend inside it?
First time hit, with spinach? A little bit?
How did Captain America manage to do this?
Two field separators (colon and space) in awk
Is there really no use for MD5 anymore?
How to fry ground beef so it is well-browned
As an international instructor, should I openly talk about my accent?
How does Captain America channel this power?
On The Origin of Dissonant Chords
What happens to Mjolnir (Thor's hammer) at the end of Endgame?
Extension of 2-adic valuation to the real numbers
How to limit Drive Letters Windows assigns to new removable USB drives
Minor Revision with suggestion of an alternative proof by reviewer
Are there physical dangers to preparing a prepared piano?
How did Elite on the NES work?
How Did the 10NES lockout chip work?How does the NES Light Gun work?How can I create a split-scroll effect in an NES game?How does the NES PlayChoice arcade's security EPROM work?NES repair - blue screenDid the NES do anything special to support coprocessors?NES PPU die photoIs screen wrap on the NES a fault of the OAM?When were other inexpensive computers able to recreate “The Amiga Juggler”?386SX, NES and how much did data lines really cost anyway?
Elite was one of the earliest 3D games, wireframe only of course but still a remarkable accomplishment on 8-bit computers. Originating on the BBC micro, it was ported to many home computers, as well as the NES.
Wait a minute. The Nintendo was a tile based machine. How did it manage to render 3D wireframes? If you even had tiles in RAM I could see how you could do it, but the NES was restricted to tiles on the ROM cartridge; it had neither the ability to put bitmaps in RAM nor enough RAM to make use of that ability had it been present.
So, how?
graphics nes gaming
add a comment |
Elite was one of the earliest 3D games, wireframe only of course but still a remarkable accomplishment on 8-bit computers. Originating on the BBC micro, it was ported to many home computers, as well as the NES.
Wait a minute. The Nintendo was a tile based machine. How did it manage to render 3D wireframes? If you even had tiles in RAM I could see how you could do it, but the NES was restricted to tiles on the ROM cartridge; it had neither the ability to put bitmaps in RAM nor enough RAM to make use of that ability had it been present.
So, how?
graphics nes gaming
2
I've never developed an NES cartridge, but I'd assume you could put RAM on the cartridge to use as PPU tile sets.
– Jon Hess
Apr 23 at 9:15
4
Well there is a PPU RD/WR & a CPU R/W line on NES connector and wikipedia suggests you can use ram for the tiles in a cartridge, so it looks to me like it's a Read Write connector
– PeterI
Apr 23 at 11:47
Sounds like someone needs to break out the disassembler.
– pjc50
2 days ago
1
From talking to someone who wrote a nes emulator (though I don't think he ever released it to the public) I recall hearing that elite updated parts of the graphics memory while other parts were being drawn to the screen,
– Peter Green
2 days ago
1
"My greatest published achievements technically would have to be fitting BBC Cassette Elite into 32K of RAM including the screen, and later the NES conversion of Elite that used a character mapped display and a single NES controller. The NES is my favourite published conversion and was not thought technically feasible until we'd done it." Ian Bell, from an interview on his webpage elitehomepage.org
– Uli
2 days ago
add a comment |
Elite was one of the earliest 3D games, wireframe only of course but still a remarkable accomplishment on 8-bit computers. Originating on the BBC micro, it was ported to many home computers, as well as the NES.
Wait a minute. The Nintendo was a tile based machine. How did it manage to render 3D wireframes? If you even had tiles in RAM I could see how you could do it, but the NES was restricted to tiles on the ROM cartridge; it had neither the ability to put bitmaps in RAM nor enough RAM to make use of that ability had it been present.
So, how?
graphics nes gaming
Elite was one of the earliest 3D games, wireframe only of course but still a remarkable accomplishment on 8-bit computers. Originating on the BBC micro, it was ported to many home computers, as well as the NES.
Wait a minute. The Nintendo was a tile based machine. How did it manage to render 3D wireframes? If you even had tiles in RAM I could see how you could do it, but the NES was restricted to tiles on the ROM cartridge; it had neither the ability to put bitmaps in RAM nor enough RAM to make use of that ability had it been present.
So, how?
graphics nes gaming
graphics nes gaming
asked Apr 23 at 8:14
rwallacerwallace
11.6k560170
11.6k560170
2
I've never developed an NES cartridge, but I'd assume you could put RAM on the cartridge to use as PPU tile sets.
– Jon Hess
Apr 23 at 9:15
4
Well there is a PPU RD/WR & a CPU R/W line on NES connector and wikipedia suggests you can use ram for the tiles in a cartridge, so it looks to me like it's a Read Write connector
– PeterI
Apr 23 at 11:47
Sounds like someone needs to break out the disassembler.
– pjc50
2 days ago
1
From talking to someone who wrote a nes emulator (though I don't think he ever released it to the public) I recall hearing that elite updated parts of the graphics memory while other parts were being drawn to the screen,
– Peter Green
2 days ago
1
"My greatest published achievements technically would have to be fitting BBC Cassette Elite into 32K of RAM including the screen, and later the NES conversion of Elite that used a character mapped display and a single NES controller. The NES is my favourite published conversion and was not thought technically feasible until we'd done it." Ian Bell, from an interview on his webpage elitehomepage.org
– Uli
2 days ago
add a comment |
2
I've never developed an NES cartridge, but I'd assume you could put RAM on the cartridge to use as PPU tile sets.
– Jon Hess
Apr 23 at 9:15
4
Well there is a PPU RD/WR & a CPU R/W line on NES connector and wikipedia suggests you can use ram for the tiles in a cartridge, so it looks to me like it's a Read Write connector
– PeterI
Apr 23 at 11:47
Sounds like someone needs to break out the disassembler.
– pjc50
2 days ago
1
From talking to someone who wrote a nes emulator (though I don't think he ever released it to the public) I recall hearing that elite updated parts of the graphics memory while other parts were being drawn to the screen,
– Peter Green
2 days ago
1
"My greatest published achievements technically would have to be fitting BBC Cassette Elite into 32K of RAM including the screen, and later the NES conversion of Elite that used a character mapped display and a single NES controller. The NES is my favourite published conversion and was not thought technically feasible until we'd done it." Ian Bell, from an interview on his webpage elitehomepage.org
– Uli
2 days ago
2
2
I've never developed an NES cartridge, but I'd assume you could put RAM on the cartridge to use as PPU tile sets.
– Jon Hess
Apr 23 at 9:15
I've never developed an NES cartridge, but I'd assume you could put RAM on the cartridge to use as PPU tile sets.
– Jon Hess
Apr 23 at 9:15
4
4
Well there is a PPU RD/WR & a CPU R/W line on NES connector and wikipedia suggests you can use ram for the tiles in a cartridge, so it looks to me like it's a Read Write connector
– PeterI
Apr 23 at 11:47
Well there is a PPU RD/WR & a CPU R/W line on NES connector and wikipedia suggests you can use ram for the tiles in a cartridge, so it looks to me like it's a Read Write connector
– PeterI
Apr 23 at 11:47
Sounds like someone needs to break out the disassembler.
– pjc50
2 days ago
Sounds like someone needs to break out the disassembler.
– pjc50
2 days ago
1
1
From talking to someone who wrote a nes emulator (though I don't think he ever released it to the public) I recall hearing that elite updated parts of the graphics memory while other parts were being drawn to the screen,
– Peter Green
2 days ago
From talking to someone who wrote a nes emulator (though I don't think he ever released it to the public) I recall hearing that elite updated parts of the graphics memory while other parts were being drawn to the screen,
– Peter Green
2 days ago
1
1
"My greatest published achievements technically would have to be fitting BBC Cassette Elite into 32K of RAM including the screen, and later the NES conversion of Elite that used a character mapped display and a single NES controller. The NES is my favourite published conversion and was not thought technically feasible until we'd done it." Ian Bell, from an interview on his webpage elitehomepage.org
– Uli
2 days ago
"My greatest published achievements technically would have to be fitting BBC Cassette Elite into 32K of RAM including the screen, and later the NES conversion of Elite that used a character mapped display and a single NES controller. The NES is my favourite published conversion and was not thought technically feasible until we'd done it." Ian Bell, from an interview on his webpage elitehomepage.org
– Uli
2 days ago
add a comment |
2 Answers
2
active
oldest
votes
The cartridge contains extra RAM. The NES can use tiles in cartridge memory space, but that doesn't necessarily have to be ROM. With suitable RAM and memory mapping the cartridge can create a basic bitmap display out of tiles.
The vectors are then rendered to that RAM using the NES CPU in the normal way.
As someone completely ignorant on the NES, I'm really curious about how this is actually implemented software side. How are tiles used to "render" a wireframe image that is supposed to change constantly? Dynamically generating each tile based on 3d computations sounds too intensive of a task for the NES hardware.
– ChatterOne
2 days ago
1
@ChatterOne it does dynamically generate them. It has a 6502 running at 1.66MHz (PAL) which is actually relatively powerful. For comparison the BBC Micro, which was the original platform for Elite, has a 6502 running at 2MHz.
– user
2 days ago
1
BTW Elite run on C64, too, on its ~1MHz 6502, and with greater resolution...
– Usagi Miyamoto
2 days ago
add a comment |
The Nintendo can easily display 256 different 8x8 background tiles fetched from a cartridge. One could use 240 such tiles to draw e.g. a 128x120 bitmap while still having a few left over to decorate the edges, and if the cartridge fetches tile data from RAM, the content of those tiles could be updated under program control. This approach would be workable for a game like Qix, which doesn't update very much content every frame, but unworkable for Elite, where each animation frame is drawn "from scratch".
European (PAL) NES consoles only allow graphics memory to be accessed during about 20% of each frame time. That may not sound like much, but it's three times the amount of time available in North American (NTSC) consoles. This isn't enough a big enough fraction of the time to load entire bitmaps for every animation frame while achieving a decent frame rate, but it is is enough that if the system determines which tiles have meaningful picture content, it will only need a few video frames to load the data for those tiles into graphics memory. There are many additional complications, but the chief take-away is that the PAL vertical blank is long enough to make such things practical. Unfortunately, because the NTSC vertical blank is much shorter (about 7% of the frame) it's unlikely games like Elite will be adaptable to North American consoles.
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "648"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fretrocomputing.stackexchange.com%2fquestions%2f9784%2fhow-did-elite-on-the-nes-work%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
The cartridge contains extra RAM. The NES can use tiles in cartridge memory space, but that doesn't necessarily have to be ROM. With suitable RAM and memory mapping the cartridge can create a basic bitmap display out of tiles.
The vectors are then rendered to that RAM using the NES CPU in the normal way.
As someone completely ignorant on the NES, I'm really curious about how this is actually implemented software side. How are tiles used to "render" a wireframe image that is supposed to change constantly? Dynamically generating each tile based on 3d computations sounds too intensive of a task for the NES hardware.
– ChatterOne
2 days ago
1
@ChatterOne it does dynamically generate them. It has a 6502 running at 1.66MHz (PAL) which is actually relatively powerful. For comparison the BBC Micro, which was the original platform for Elite, has a 6502 running at 2MHz.
– user
2 days ago
1
BTW Elite run on C64, too, on its ~1MHz 6502, and with greater resolution...
– Usagi Miyamoto
2 days ago
add a comment |
The cartridge contains extra RAM. The NES can use tiles in cartridge memory space, but that doesn't necessarily have to be ROM. With suitable RAM and memory mapping the cartridge can create a basic bitmap display out of tiles.
The vectors are then rendered to that RAM using the NES CPU in the normal way.
As someone completely ignorant on the NES, I'm really curious about how this is actually implemented software side. How are tiles used to "render" a wireframe image that is supposed to change constantly? Dynamically generating each tile based on 3d computations sounds too intensive of a task for the NES hardware.
– ChatterOne
2 days ago
1
@ChatterOne it does dynamically generate them. It has a 6502 running at 1.66MHz (PAL) which is actually relatively powerful. For comparison the BBC Micro, which was the original platform for Elite, has a 6502 running at 2MHz.
– user
2 days ago
1
BTW Elite run on C64, too, on its ~1MHz 6502, and with greater resolution...
– Usagi Miyamoto
2 days ago
add a comment |
The cartridge contains extra RAM. The NES can use tiles in cartridge memory space, but that doesn't necessarily have to be ROM. With suitable RAM and memory mapping the cartridge can create a basic bitmap display out of tiles.
The vectors are then rendered to that RAM using the NES CPU in the normal way.
The cartridge contains extra RAM. The NES can use tiles in cartridge memory space, but that doesn't necessarily have to be ROM. With suitable RAM and memory mapping the cartridge can create a basic bitmap display out of tiles.
The vectors are then rendered to that RAM using the NES CPU in the normal way.
answered Apr 23 at 13:07
useruser
4,746922
4,746922
As someone completely ignorant on the NES, I'm really curious about how this is actually implemented software side. How are tiles used to "render" a wireframe image that is supposed to change constantly? Dynamically generating each tile based on 3d computations sounds too intensive of a task for the NES hardware.
– ChatterOne
2 days ago
1
@ChatterOne it does dynamically generate them. It has a 6502 running at 1.66MHz (PAL) which is actually relatively powerful. For comparison the BBC Micro, which was the original platform for Elite, has a 6502 running at 2MHz.
– user
2 days ago
1
BTW Elite run on C64, too, on its ~1MHz 6502, and with greater resolution...
– Usagi Miyamoto
2 days ago
add a comment |
As someone completely ignorant on the NES, I'm really curious about how this is actually implemented software side. How are tiles used to "render" a wireframe image that is supposed to change constantly? Dynamically generating each tile based on 3d computations sounds too intensive of a task for the NES hardware.
– ChatterOne
2 days ago
1
@ChatterOne it does dynamically generate them. It has a 6502 running at 1.66MHz (PAL) which is actually relatively powerful. For comparison the BBC Micro, which was the original platform for Elite, has a 6502 running at 2MHz.
– user
2 days ago
1
BTW Elite run on C64, too, on its ~1MHz 6502, and with greater resolution...
– Usagi Miyamoto
2 days ago
As someone completely ignorant on the NES, I'm really curious about how this is actually implemented software side. How are tiles used to "render" a wireframe image that is supposed to change constantly? Dynamically generating each tile based on 3d computations sounds too intensive of a task for the NES hardware.
– ChatterOne
2 days ago
As someone completely ignorant on the NES, I'm really curious about how this is actually implemented software side. How are tiles used to "render" a wireframe image that is supposed to change constantly? Dynamically generating each tile based on 3d computations sounds too intensive of a task for the NES hardware.
– ChatterOne
2 days ago
1
1
@ChatterOne it does dynamically generate them. It has a 6502 running at 1.66MHz (PAL) which is actually relatively powerful. For comparison the BBC Micro, which was the original platform for Elite, has a 6502 running at 2MHz.
– user
2 days ago
@ChatterOne it does dynamically generate them. It has a 6502 running at 1.66MHz (PAL) which is actually relatively powerful. For comparison the BBC Micro, which was the original platform for Elite, has a 6502 running at 2MHz.
– user
2 days ago
1
1
BTW Elite run on C64, too, on its ~1MHz 6502, and with greater resolution...
– Usagi Miyamoto
2 days ago
BTW Elite run on C64, too, on its ~1MHz 6502, and with greater resolution...
– Usagi Miyamoto
2 days ago
add a comment |
The Nintendo can easily display 256 different 8x8 background tiles fetched from a cartridge. One could use 240 such tiles to draw e.g. a 128x120 bitmap while still having a few left over to decorate the edges, and if the cartridge fetches tile data from RAM, the content of those tiles could be updated under program control. This approach would be workable for a game like Qix, which doesn't update very much content every frame, but unworkable for Elite, where each animation frame is drawn "from scratch".
European (PAL) NES consoles only allow graphics memory to be accessed during about 20% of each frame time. That may not sound like much, but it's three times the amount of time available in North American (NTSC) consoles. This isn't enough a big enough fraction of the time to load entire bitmaps for every animation frame while achieving a decent frame rate, but it is is enough that if the system determines which tiles have meaningful picture content, it will only need a few video frames to load the data for those tiles into graphics memory. There are many additional complications, but the chief take-away is that the PAL vertical blank is long enough to make such things practical. Unfortunately, because the NTSC vertical blank is much shorter (about 7% of the frame) it's unlikely games like Elite will be adaptable to North American consoles.
add a comment |
The Nintendo can easily display 256 different 8x8 background tiles fetched from a cartridge. One could use 240 such tiles to draw e.g. a 128x120 bitmap while still having a few left over to decorate the edges, and if the cartridge fetches tile data from RAM, the content of those tiles could be updated under program control. This approach would be workable for a game like Qix, which doesn't update very much content every frame, but unworkable for Elite, where each animation frame is drawn "from scratch".
European (PAL) NES consoles only allow graphics memory to be accessed during about 20% of each frame time. That may not sound like much, but it's three times the amount of time available in North American (NTSC) consoles. This isn't enough a big enough fraction of the time to load entire bitmaps for every animation frame while achieving a decent frame rate, but it is is enough that if the system determines which tiles have meaningful picture content, it will only need a few video frames to load the data for those tiles into graphics memory. There are many additional complications, but the chief take-away is that the PAL vertical blank is long enough to make such things practical. Unfortunately, because the NTSC vertical blank is much shorter (about 7% of the frame) it's unlikely games like Elite will be adaptable to North American consoles.
add a comment |
The Nintendo can easily display 256 different 8x8 background tiles fetched from a cartridge. One could use 240 such tiles to draw e.g. a 128x120 bitmap while still having a few left over to decorate the edges, and if the cartridge fetches tile data from RAM, the content of those tiles could be updated under program control. This approach would be workable for a game like Qix, which doesn't update very much content every frame, but unworkable for Elite, where each animation frame is drawn "from scratch".
European (PAL) NES consoles only allow graphics memory to be accessed during about 20% of each frame time. That may not sound like much, but it's three times the amount of time available in North American (NTSC) consoles. This isn't enough a big enough fraction of the time to load entire bitmaps for every animation frame while achieving a decent frame rate, but it is is enough that if the system determines which tiles have meaningful picture content, it will only need a few video frames to load the data for those tiles into graphics memory. There are many additional complications, but the chief take-away is that the PAL vertical blank is long enough to make such things practical. Unfortunately, because the NTSC vertical blank is much shorter (about 7% of the frame) it's unlikely games like Elite will be adaptable to North American consoles.
The Nintendo can easily display 256 different 8x8 background tiles fetched from a cartridge. One could use 240 such tiles to draw e.g. a 128x120 bitmap while still having a few left over to decorate the edges, and if the cartridge fetches tile data from RAM, the content of those tiles could be updated under program control. This approach would be workable for a game like Qix, which doesn't update very much content every frame, but unworkable for Elite, where each animation frame is drawn "from scratch".
European (PAL) NES consoles only allow graphics memory to be accessed during about 20% of each frame time. That may not sound like much, but it's three times the amount of time available in North American (NTSC) consoles. This isn't enough a big enough fraction of the time to load entire bitmaps for every animation frame while achieving a decent frame rate, but it is is enough that if the system determines which tiles have meaningful picture content, it will only need a few video frames to load the data for those tiles into graphics memory. There are many additional complications, but the chief take-away is that the PAL vertical blank is long enough to make such things practical. Unfortunately, because the NTSC vertical blank is much shorter (about 7% of the frame) it's unlikely games like Elite will be adaptable to North American consoles.
answered Apr 23 at 17:58
supercatsupercat
8,6751043
8,6751043
add a comment |
add a comment |
Thanks for contributing an answer to Retrocomputing Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fretrocomputing.stackexchange.com%2fquestions%2f9784%2fhow-did-elite-on-the-nes-work%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
2
I've never developed an NES cartridge, but I'd assume you could put RAM on the cartridge to use as PPU tile sets.
– Jon Hess
Apr 23 at 9:15
4
Well there is a PPU RD/WR & a CPU R/W line on NES connector and wikipedia suggests you can use ram for the tiles in a cartridge, so it looks to me like it's a Read Write connector
– PeterI
Apr 23 at 11:47
Sounds like someone needs to break out the disassembler.
– pjc50
2 days ago
1
From talking to someone who wrote a nes emulator (though I don't think he ever released it to the public) I recall hearing that elite updated parts of the graphics memory while other parts were being drawn to the screen,
– Peter Green
2 days ago
1
"My greatest published achievements technically would have to be fitting BBC Cassette Elite into 32K of RAM including the screen, and later the NES conversion of Elite that used a character mapped display and a single NES controller. The NES is my favourite published conversion and was not thought technically feasible until we'd done it." Ian Bell, from an interview on his webpage elitehomepage.org
– Uli
2 days ago