3 ms·
I know nothing about this. What's up with the vertical lines for color variations here? Is there some kind of hardware trick why that technique is used? The la
by kristopolous 3y ago
I know nothing about this. What's up with the vertical lines for color variations here? Is there some kind of hardware trick why that technique is used?
The last time I wrote a 2.5D engine was over 25 years ago so please be gentle
- actionfromafar 3y agoI suspect it's a way to dither with few colors, and possibly a way to render textures very quickly into the Amigas peculiar pixel format. One pixel is not a triplet or bytes, or even a single byte. One byte is 8 pixels! And that's for monochrome. (Pure black and pure white.) To have more colors, you add more of these "bit planes" on top of each other. So if you have say, 32 colors and want to update a single pixel, you have to write four bytes, changing only the one bit in every one of these four bytes. This is not very nice when you try to sweep textures on a 3D-ish mesh. (But very good for 2D graphics with large chunks bobbing up and down.)
- kristopolous 3y agoah that would explain why the rendering is a bunch of rectangles. Is this a classical vga mode (320x(either 200 or 240) x 256 color)?
- actionfromafar 3y agoMy guess without looking to closely, it's 32 colors, because that's max what the Amiga 500 could display at a time. Definitely 320x200 something.
- ekianjo 3y agoThe Amiga could display more colors than that with copper hacks though. Look at Shadow of the Beast.
- z303 3y agoI expect you are correct. The Amiga (except some early 1000s) also had a Extra Half Brite mode that has 6 bitplanes, 64 colours with the second 32 being half the brightness of the others. https://en.wikipedia.org/wiki/Amiga_Halfbrite_mode https://en.wikipedia.org/wiki/Amiga_Halfbrite_mode The extra data fetching does slow things down. https://eab.abime.net/showthread.php?t=102990#:~:text=And%20unlike%20the%20double%20playfield,brite%20mode%20is%20very%20slow https://eab.abime.net/showthread.php?t=102990#:~:text=And%20.... The panel at the bottom looks like it uses the copper to have a different palette to the rest of the screen. That is a very common effect. https://codetapper.com/amiga/sprite-tricks/shadow-of-the-beast/ https://codetapper.com/amiga/sprite-tricks/shadow-of-the-bea...
- vardump 3y agoOther than using copper to change palette entries at desired scanlines, Amiga 500 can display 64 colors in EHB (Extra Half Brite) mode with 6 bitplanes. Since there are only 32 palette entries, the upper 32 colors are otherwise same, but half the brightness. And of course 4096 in HAM mode, but the mode has severe limitations and is completely impractical for textured 3D-games.
- actionfromafar 3y agoWell. Have a look at this: https://www.youtube.com/watch?v=wbWGAFIkA5E&list=PLRdmatuCYANuckM5c4yknkm7cXv9jIeow&index=2 https://www.youtube.com/watch?v=wbWGAFIkA5E&list=PLRdmatuCYA... https://youtu.be/SXmGGiZ-ttY?t=39 https://youtu.be/SXmGGiZ-ttY?t=39
- vardump 3y ago> …32 colors and want to update a single pixel, you have to write four bytes… A small correction, you have to write 5 bytes (or 16-bit words, same performance). 4 bytes changed gets you only 16 colors.
- pornel 3y agoIt's probably doing two things: 1. simulates texture filtering and dithering hiding low resolution and low number of colors in textures, and 2. renders two or four columns at once. Amiga had planar graphics, which did not support setting individual pixels. To set a pixel you'd have to set appropriate bit in up to 6 bytes (64 colors max) scattered around in memory. Writing one byte modified one bit of 8 adjacent pixels, which was terrible for textured 3D graphics.
- JD557 3y agoI was ondering about it as well, and it appears to be explained in detail here: https://www.youtube.com/watch?v=c00B3uE5FV8 https://www.youtube.com/watch?v=c00B3uE5FV8 I think it's a similar technique to Sonic 3D's Intro FMV on the Genesis/Megadrive (https://www.youtube.com/watch?v=VTawyLNoRhU https://www.youtube.com/watch?v=VTawyLNoRhU). The original image is squashed vertically, so that you only compute half the pixels and then you stretch it back up. When you do this, you can't have the usual dither patters, so you end with something like this (unless you cheat shift every other line, like in Sonic 3D, but then you have dither patterns everywhere).
- bogantech 3y agoA later video expands on this too: https://www.youtube.com/watch?v=y9fQw1W22i8&list=PL-3inz2kpSUPGYZwBUAbJjaj-klo4nErb&index=8&t=447s https://www.youtube.com/watch?v=y9fQw1W22i8&list=PL-3inz2kpS...