The Industrious Rabbit

The Industrious Rabbit

By
Download on the App Store

The Industrious Rabbit episodes

  • The Obligatory Amiga Blitter Video

    It's time...time for a video on the Commodore Amiga Blitter! Topaz walks through the memory copy capabilities of this feature in the context of a small demo written to exercise the blitter, copper, and sprites.

    Thanks to Tyrel (@[email protected]), corb0!

    • Mastodon: https://oldbytes.space/@TopazRabbit
    • Website: https://theindustriousrabbit.com/
    • RSS: https://theindustriousrabbit.com/index.xml
    • Donate: https://ko-fi.com/topazrabbit
    • References

      Code:

      • Cool Bun Demo on Hackerbun (https://code.hackerbun.dev/TheIndustriousRabbit/cool-bun-demo) - All the blitter code I used for this video is here, including the code to convert PNGs to Amiga assembler embedded images used in the main C code.
      • Documentation:

        • Amiga Blitter Hardware (https://amigadev.elowar.com/read/ADCD_2.1/Hardware_Manual_guide/node0118.html) - The Amiga Blitter section of the hardware manual
        • SAS/C and DevPac interop (https://amigasourcecodepreservation.gitlab.io/total-amiga-assembler/#xdef-and-xref) - Since I use SAS/C and DevPac, I needed to know how to get the two to talk to each other
        • Credits

          Music:

          • "Silly Fun" and "Wallpaper" by Kevin MacLeod
          • https://incompetech.com
            CC-BY 3.0 (http://creativecommons.org/licenses/by/3.0/)

            SFX:

            • Dragon_Wing.wav by Bsdjak
            • https://freesound.org/people/Brsjak/sounds/483095/
              CC-BY 4.0 (http://creativecommons.org/licenses/by/4.0/)
            • slap-cards.wav by themfish
            • https://freesound.org/people/themfish/sounds/45821/
              CC-BY 4.0 (http://creativecommons.org/licenses/by/4.0/)
            • Bell 3.wav by el1n
            • https://freesound.org/people/el1n/sounds/442747/
              CC-0 (http://creativecommons.org/publicdomain/zero/1.0/)
              0 min
            • Nandland Go Board Examples

              Here's my Nandland Go Board (https://nandland.com/the-go-board/) running through some of the exercises from the creator's book and website:

              • https://nostarch.com/gettingstartedwithfpgas
              • https://nandland.com/download-and-install-the-fpga-tools-and-drivers/
              • I posted the Verilog source code that I reworked for these examples on my Gitea server: https://code.hackerbun.dev/john/go-board-code

                0 min
              • How did DOS games draw to the screen so fast?

                The EGA and VGA video standards share some similarities with how the Amiga did graphics, but the similarities end when it comes to the 256 color graphics that defined 90s PC gaming. Topaz walks you through the basics of how those video modes worked, and what made them get so fast over time.

                Thanks to Tyrel (@[email protected])!

                • Mastodon: https://oldbytes.space/@TopazRabbit
                • Website: https://theindustriousrabbit.com/
                • RSS: https://theindustriousrabbit.com/index.xml
                • Donate: https://ko-fi.com/topazrabbit
                • References

                  3d game source code:

                  • Wolfenstein 3D (https://github.com/id-Software/wolf3d/blob/master/WOLFSRC/WL_AGENT.C#L244-L361) - Wolfenstein 3D using latched VGA copies to draw things on screen
                  • Duke Nukem 3D (https://github.com/grepwood/duke3d/blob/master/source/buildengine/dos_drvr.c#L532) - The DOS driver shovels data into the chunky mode as fast as it can. It didn't use page flipping.
                  • Quake (https://github.com/id-Software/Quake/blob/master/QW/client/d_copy.s#L20-L148) - Quake shoveling data into either the planar or chained VGA. Quake didn't use any of the page-flipping approaches that unchaned modes allowed, so the only benefit was higher resolutions.
                  • Commander Keen in Keen Dreams (https://github.com/keendreams/keen/blob/master/id_vw_ae.asm) - The EGA drawing routines used in this game were more sophisticated than in the earlier Commander Keen 1, but all of the fun tricks are still there.
                  • Code on Hackerbun:

                    • VGA and SVGA code examples (https://code.hackerbun.dev/TheIndustriousRabbit/vga-logic-processor-examples) - My code exploring how the VGA and SVGA modes work in more detail, as well as learning more about x86 assembler.
                    • 2d games and the EGA pipeline:

                      • Duke Nukem II Reconstructed (https://github.com/lethal-guitar/Duke2Reconstructed) - Walks through a ton of detail on how this VGA game used the EGA pipeline, but on a VGA card, to achieve its smooth scrolling
                      • Lethal Guitar's Duke Nukem platformer blog posts (https://lethalguitar.wordpress.com/2023/11/04/duke-nukem-1s-tile-rendering/) - A much more detailed overview on the EGA drawing pipeline and how it was used effectively for platforming games
                      • Why are, like, half these examples id Software games?:

                        • Graphics Programming Black Book by Michael Abrash (https://www.phatcode.net/res/224/files/html/index.html) - This book not only has a lot of incredible detail about the x86 processor, the DOS platform, and how these EGA and VGA modes work, but the author also worked on the Quake engine, and his earlier articles helped John Carmack make games like Commander Keen run so smoothly. Even if you're not going to write low-level code for retro machines, the first three chapters are a fantastic read for any software developer who gets caught up in prematurely optimizing anything (code, date, features) at any level of the process. Highly recommended.
                        • Credits

                          Music:

                          • "Show Your Moves" by Kevin MacLeod
                          • https://incompetech.com
                            CC-BY 4.0 (http://creativecommons.org/licenses/by/4.0/)
                            0 min

                          About The Industrious Rabbit

                          From the publisher's feed

                          Get your paws dirty and learn something new! Animations, live streams, and other videos, published whenever. By @[email protected]. Read blog posts, browse the wiki & code repository, and…