Welcome to Pete's QBASIC Site!

FreeBasic Top 50

QB Top 50

Animated Graphics in QBasic Using DATA statements to make graphics. Beginner stuff, loads of source. Mallard
Game Tutorial Series - Graphics SCREEN, PSET, LINE, CIRCLE and DATA statement graphics, in a nutshell. (QB Cult Magazine #2) Provgamer
Graphics Tutorial A good beginners' graphics tutorial, including CIRCLE, LINE, PAINT, PSET, and SCREEN modes. Chris Williamson
Graphics Tutorial on BASIC Take all the small graphics tutorials you've seen around and combine them, and this is what you get. Covers the basic built-in commands (LINE, DRAW, PSET, etc.), how to draw graphics with DATA statements, GET and PUT, using multiple pages, masking, editing the palette, BSAVE / BLOAD, fast palette and reducing flicker. Lucas K. Tavares
Jonathon's Advanced Graphics Tutorial An overview of graphics programming in QB that covers some lesser-known techniques like using multiple pages in SCREEN 7, 8 and 9. However, this tutorial is hardly "advanced". Jonathon
Screen 13 Graphics Introduction to Screen 13 and plotting pixels with POKE rather than PSET. (BASIX Newsletter #1) Screech
Screen 13 Graphics Part 2 Includes ASM and Blast! routines for plotting a pixel, and information on manipulating the RGB Palette. (BASIX Newsletter #2) Screech

Mode 13 VGA GET/PUT Information and Techniques THE tutorial on using GET and PUT, along with DIMing your graphics. Andrew L. Ayers
GIF 2 BSV Learn how to convert a .gif to a BSAVE file, which makes loading much faster. James Kurth
Bsaving and Bloading in QBasic BLOAD and BSAVE in EGA/VGA Mallard
Sprites #1 Part 1 of an In-depth tutorial on making and plotting sprites. Unknown
Sprites #2 Part 2 of the sprite tutorial -- BSAVING, BLOADING, masking and more. Unknown
QB Graphics Tutorials Graphics arrays, GET and PUT. This tutorial is nicely-formatted and comes with a lot of code examples. RokFOX
Sprites in QBASIC Covers the basics you'd expect, but also goes into things like page flipping, transparency and clipping. Additionally, this includes source code for "Making a new PUT", a pure QB improvement over the native PUT statement. Ted Felix
Saving and Loading Graphics in Binary Mode Explains "What's wrong with BSAVE and BLOAD" and teaches you some simple binary graphics saving and loading techniques. Lior Zur
GET.BAS A well-commented program that introduces sprite graphics, GET and PUT and WAITing for the vertical retraice. Matt Bross
CHARN's QBasic Tutorial, Part 1 Brief explanation of screen modes and GET and PUT. CHARN
QBasic Graphics Tutorial Sprites through DATA statements, then making a tile map with your shiny new graphics. James Kinney
Beginning Sprites Explains several key aspects of drawing animated sprites. Includes animated graphical examples. (QB Cult Magazine #9) Rancid
Getting and Putting Graphics A thorough article on storing images in numeric arrays, and manipulating their appearance (such as "flipping", rotating, or changing colors in an image). (QBNews Vol. 1 No. 2) Frederick Volking
Manipulating Sprites in Screen 13 A GET and PUT introduction, as well as information on how to mirror (flip) sprites and a few other techniques. (QBNews Vol. 2 No. 3) Fred Sexton Jr.
Power Programming: Sprite Management Covers several essential skills on sprite management that you might have missed; how to dimension proper arrays, store multiple sprites in a single array, BLOAD and BSAVE, VARSEG And VARPTR and some other topics. Useful stuff! (QB:TM #10) Seav
Saving A Graphic in Screen 13 Introduction to BSAVE and BLOAD, as well as video addresses, VARSEG and VARPTR. (BASIX Fanzine #4) James Erickson
GET...PUT For Beginners Introduction to using GET and PUT for Screen 13 graphics. Covers masking, buffers and arrays too. (QB:TM #3) NetherGoth

Palette and Colors
Controlling The Palette in QuickBasic Very well-written tutorial on palette manipulation, including instructions on fades and various eye-pleasing color effects. (QB Cult Magazine #5) Terry Cavanagh
EGA Color Layout (Base 16 Colors) An insightful explanation of the sixteen standard, "base" colors available in QB. (QB Cult Magazine #17) Nexinarus
How To Do A Good VGA Palette A good tutorial on using RGB values to set the palette. Lots of source. abionnn
How To Save and Load Screen Colors Changing the palette without the PALETTE command, and saving / loading your own custom palette. JMB
Million-Color Palette for IBM PC Explains the basics of computer color theory, and how to manipulate colors in several different screen modes. This information applies to all versions of BASIC. John and Jeff Klein
The Palette in QB Explains the basics of palette manipulation through OUT and such (the standard way of doing this, it seems), and also includes a nice explanation of how to do translucency effects, which is very helpful. (QB Chronicles #2) Fling-master
Palette Tricks By Zkman *Another* palette tutorial. This one was featured in QB:TM. Contains some great info on doing translucency by using a lookup table. Zkman
Palettes in QBasic (Part A) Basics of Palette manipulation, and how to speed it up through interrupts. (BASIX Fanzine #6) Joe Lawrence
QB's Palette All about adjusting QB's palette...without the PALETTE statement. Includes some sample programs that demonstrate some of the neat tricks you can achieve through palette rotation. James Kinney
Saving The Pallete With Your Sprites How to save the palette along with the BSAVE image data into one image file. (QB:TM #11) Nekrophidius
Understanding The VGA Palette A standard introduction to editing the color palette in QB. This one also includes instructions on doing palette fades and gradients. (QB Cult Magazine #1) Matthew R. Knight
The VGA Palette, QBasic, and You A palette tutorial. Very nice, and in-depth. Lots of source Brian Bartels

BMP Slideshow Animations Learn how to animate a series of BMP images with this tutorial. A nice example of how to do a cinematic-type sequence in QB. Unknown
Waiting For The Vertical Retrace A small tutorial discussing one method of reducing flicker in your program. Teaches you how to wait for the Vertical Retrace. HAL_8900
Generating Animations Using QBASIC Covers the fundamentals of animation in QBASIC. This is for absolute beginners. Peter Smith

3D Graphics
3D in QB An introduction to how three dimensional graphics work, and some short code examples. (QB Times #2) BlackBird
3D Graphics Introduction to creating 3D graphics and objects in commercially-available 3D rendering software. (QB Times #7) Nightwolf
3D Graphics (Part 2) Using Extreme 3D to design and render your first 3D graphics. (QB Times #8) Nightwolf
3D Graphics In BASIC: Part I Introduction to basic three-dimensional (X,Y,Z) math and 3D transformations. (BASIX Fanzine #4) Christian Garms
3D Graphics In BASIC: Part II Introduction to 3D animation, moving objects and rotating objects. Covers other topics too, such as double buffering. (BASIX Fanzine #8) Christian Garms
3D Graphics Rendering, Part 1 Explains shading the colors of 3D objects based on the arithmetic mean. Mostly pseudo-code. (BASIX Fanzine #13) Damien Nikodem
3D Tutorial A short tutorial accompanied by a 3D utility program with some valuable code examples that can help introduce you to 3D graphics. (QBXL) Xerol
3D Tutorial For QBasic A huge 3D graphics tutorial with a TON of source. This goes into a lot of depth, covering advanced material like raycasting and 3D shading. Matt Bross
BASIC Guide to 3D Programming Covers the very basics of 3D programming, with an introduction to 3D space. This tutorial shows you how to draw a 3D cube. Chronomaster
The Basics of 3D Graphics For QBasic A great tutorial on 3D graphics in QB with source. Includes an intro to 3D objects, and then shows how to create and rotate basic 3D shapes! Aaron Severn
Faster 3D Rotation Optimizations to the standard 3D rotating formulas that will save you some processing time. (QB Cult Magazine #5) Eclipzer
Hidden Surface Removal for Three-Dimensional Drawing Removing hidden / unnecessary surfaces when rendering your 3D graphics to save processing speed and prevent graphical glitches. (QB Times #8) Matthew R. Knight
Introduction to 3D Series #1 A user-friendly introduction to 3D space, with several essential equations, but very little actual sample code. (QB Cult Magazine #3) Matthew R. Knight
Introduction To 3D Series #2 Rotating 3D objects, then plotting them on the screen. (QB Cult Magazine #4) Matthew R. Knight
Implicit Surface Polygonization A short article explaining how to polygonize implicit surfaces: "The surface is not defined explicitly (as in polygons), or parametrically (as in spline grids), but rather, well, implicitly. Basically, you have a function f(x,y,z) which is 0 for any point on a closed surface, negative on the 'inside' of that surface, and positive on the 'outside'." (QBOA Issue 4) Logiclrd
Jian2587's Raycasting Tutorial Well-written tutorial covering only the basics of raycasting. A good introduction -- read this before moving on to the other raycasting tuts. Includes some useful text diagrams. Tze Jian Chear
More About Shading, Z-Buffer and Textures Improve your 3D game program through Gouraud shading, adding textures, Phong shading and more. This is not a QB tutorial, but includes examples in both pseudo-code and ASM. Karma
One Approach to Real Time Texture Mapping Shows you how to apply textures to 3D objects...discusses texturing true polygons as well as raycasters. Unfortunately, the diagram images are missing. William D. Doughty
Perspective Projection A great explanation of the mathematics behind 3D graphics, including several text diagrams. Well-written and easy to understand! Toshi Horie
Raycasting In QBasic A tiny tutorial that introduces you to making "a game like DOOM." The majority of the content is in the included .bas file. (QB Cult Magazine #4) William Moores
Raycasting Tutorial A seven-part tutorial, which shows the evolution of a raycaster. Starts with the absolute basics, then builds on them by gradually improving the program, step-by-step. A great series -- highly recommended! Joe King
Taking the Convex Hull of a Set of Points "The convex hull of a set of points is the smallest convex polygon containing all of the points. This is a helpful thing to know when creating isosurfaces, and a bunch of other shit." (QB Cult Magazine #8) EvilGeek
Texture Mapping Mathematics This document explains the formulas that are used to perform texture mapping for a polygon. The (small amount of) source code included is for a Linux system, but the majority of the document is a listing of useful texture-mapping formulas and equations. Jorrit Tyberghein
Why Divide By Z? An excellent explanation of the process of "perspective projection" along the Z-axis in your 3D programs. (QB Cult Magazine #5) Toshi Horie
Zed3D: A Compact Reference For 3D Computer Graphics Programming A 115-page book that discusses all aspects of 3D graphics programming. Covers everything you could ever need to program a 3D game, though much of the information is incredibly advanced-- by no means meant for beginners. Sébastien Loisel

2D Graphical Manipulation / Effects
Coderz Series: Plasma Creating plasma effects through sine waves. (BASIX Fanzine #6) Peter Cooper
Coderz Series: The STATIC Effect Creating a static effect, like what you see on your TV when you're having bad reception. (BASIX Fanzine #7) Peter Cooper
2D Graphics Rotation Rotating two-dimensional sprites. Very handy tutorial. (BASIX Fanzine #9) Alex Warren
Fractals With QB - Part 1 A good explanation of what fractals are, with a lot of graphics and diagrams. Some of them are even animated. This tutorial contains no source code. (QB Cult Magazine #15) Jark
Fractals With QB - Part 2 The meat and potatoes of fractals -- how to create your own in QB. Also discusses raytracing of fractals. Includes source code and some amazing screenshots. (QB Cult Magazine #16) Jark
Puzzle Effect Explained How to create a cool "swipe" effect, as seen on the Windows installation screen. (QB Cult Magazine #16) RelSoft
Plasmas Revealed An explanation of how to make plasmas using both palette rotation and functional trigonometry. (QB Cult Magazine #17) RelSoft
2-Dimensional Rotation Short and sweet tutorial on rotating 2D sprites. (QB Cult Magazine #5) Matthew R. Knight
How To Create A Ripple Effect Making your 2D graphics "ripple" out from a point. A cool effect. (QB Cult Magazine #7) Zap
Lines With Style Using the "FUSION" routines to create cool plasma and "energy" effects. (QBNews Vol. 2 No. 3) Larry Stone and Charles Graham
Bumpmapping Introduction to creating bump texture / light effects in QuickBasic. (Razor Diskmag #1) Entropy
Binding Sprites to Sinewaves Creating a "wave" animation effect on sprite-based QB games. (QBXL) SJ Zero
Coding Your Own "Fire" Routines The basics of doing the grandfather of all graphics routines, the FIRE algorithm! Phil Carlisle
Pixel Morphing Tutorial on pixel morphing. Terminator_Z
Crossfading Tutorial on crossfading Terminator_Z
QB Rotation Primer A well-written explanation of how to rotate graphics in QB, as well as change their scale, or perform other "math tricks". Essential for the graphics demo coder, but also valuable to anyone who wants to incorporate Mode 7 (SNES) style sprite effects in their game. Toshi Horie

Pixel Art
Beginning Tile Graphics A pixel art tutorial on how you should go about designing your sprites to fit together seamlessly in a grid. (QB Cult Magazine #11) Rancid
Pixel Art Step-by-step explanation of how to make a 16x16 RPG character sprite. A good template if you've got to make a lot of NPCs for your RPG. Hungry
So You Want To Be A Pixel Artist? Tsugumo's famous eleven-part tutorial series covering all aspects of pixel art for videogames. Full of great sample images, well-written, humorous, insightful and incredibly helpful. This has a heavy focus on RPG and 2D fighting game sprites. The BEST tutorial series I've ever seen. Must see! (You can also download a zip archive of this entire series.) Tsugumo
Tesselations A brief look at creating sprite-based tesselations. ("Tessellation" is the name for systems of interlocking geometric forms or shapes which fill the entire surface of the screen (or tile, or quilt, or other flat plane) without overlapping and without any gaps.) This is useful for making interlocking repeated tiles for your RPG's map. Tsugumo

Graphics File Formats
BMP's Explained Shows you how to load Windows-format BMPs in QB. (QB Cult Magazine #12) Golrien
File Formats: BMP A very thorough explanation of the bitmap file format. If you're planning on making a BMP loader, this will come in handy. (QB Times #1) Unknown
File Format: GIF 89A All you'll ever want to know about the GIF file format. (QB Times #4) CompuServe, Inc.
File Format: PCX Explanation of the PCX image file format. (QB Times #4) ZSoft Corp.
Loading BMP Files in QBasic A step-by-step tutorial on loading BMP image files in QB. Includes speed optimizations through interrupts. CGI Joe

SVGA Graphics
SVGAQB Tutorial (Part 2) Part two of Digital Dude's tutorial series on using the Zephyr SVGA library. (QBOA Issue 2) Digital Dude
SVGA Programming A short introduction to graphics screen modes and Super VGA programming. This tutorial barely scratches the surface, but includes quality source code. (QB Chronicles #4) Fling-master
Using ZSVGA (Part 1) Zephyr's SVGA Lib is a full-featured lib for QuickBasic with great SVGA functions. This will show you how to use it...or at least give you an introduction. (QBOA Issue 1) Digital Dude
VESA BIOS Core Function Standards (PDF) Specification documents for SVGA programming and VESA BIOS chips. A resource for really smart programmers. :) VESA
VESA Super VGA Standards The SVGA specs, straight from VESA. Know what you're doing before reading this. VESA

Tom Rathbone's 3D Graphics Series
Part 1: Relating 3D Points to 2D Coordinates & A 3D PSET Function Explains how to plot a 3D point into a 2D screen, and includes a useful subroutine that will automatically PSET your 3D points. Tom Rathbone
Part 2: Rotating Points, Antialiasing and Smoother Animations Using trigonometry to rotate points in 3D space, a simple but easy-to-understand anti-aliasing tutorial and waiting for the vertical retrace. Tom Rathbone

Apester's Sprite Editing Series
Part 1: Sprite Editing & Theory An introduction to sprite editing and graphical arrays using DATA statements. Apester
Part 2: More On Sprite Editing Discusses BLOAD and BSAVE, sprite masks and other miscellaneous sprite techniques. Apester
Part 3: A Decent Sprite Editor What to look for in a sprite editor and how to save and load the sprites created by your editor. This tutorial tailors to Apester's own sprite editor, ApeDraw. Apester
ApeDraw Apester's sprite editor, which is discussed in this tutorial series. Apester

Aaron Severn's SVGA Series
SVGA Series: Part I An introduction to VESA SVGA standards, and then using SVGA screen modes in QB. (QB:TM #1) Aaron Severn
SVGA Series: Part II A continuation of Aaron Severn's SVGA series; covers topics like direct color modes, page flipping and bank switching. (QB:TM #2) Aaron Severn
SVGA Series: Part III Some appendices; VESA VGA BIOS Extension function reference, VESA defined screen modes, Required TYPE definitions and descriptions and more. (QB:TM #3) Aaron Severn

Sane's 3D Graphics Series
Graphics Coding, Part 1: Basic Poly Filling Shows you how to fill in polygonal graphics with solid colors. (QB Cult Magazine #10) Sane
Graphics Programming, Part 2: Gouraud Shaded Polys An explanation on doing simple gouraud shading, which mimics the effects of light shining on 3D objects. (QB Cult Magazine #11) Sane
Graphics Coding, Part 3: Texture Mapped Polys How to map 2D bitmap textures onto your polygons. (QB Cult Magazine #12) Sane
Graphics Coding, Part 4: A Basic 3D Engine Creating a very basic 3D engine out of polygons. (QB Cult Magazine #13) Sane
Graphics Coding, Part 5: 3D Rotations and Backface Culling How rotate your 3D objects and draw them on screen -- while avoiding drawing the polygons you don't see. Includes diagrams. (QB Cult Magazine #14) Sane

Damien Nikodem's Graphics Series
Graphics In QBasic Tutorial (Part 1) Explains how to use the palette and plot pixels using interrupts. (BASIX Fanzine #10) Damian Nikodem
Graphics In QBasic Tutorial (Part 2) A brief summary of the PCX image file format. (BASIX Fanzine #11) Damian Nikodem
Graphics In QBasic Tutorial (Part 3) Discusses "randomic algorithms" -- creating graphical effects based on random variables. There is an example on how to make a random number grass routine included. (BASIX Fanzine #12) Damien Nikodem

Gavan's Pixel Art Series
Pixel Art Series #1 The Dark Ages 2 graphics artist provides an introduction to pixel art theory, and covers topics like shading, texturing and creating metallic / chrome effects. (QB:TM #10) Gavan
Pixel Art Series #2 Instructions on doing many common graphic effects in pixel art: bump, diffusion, extrusion, pattern, and specular mapping; transparency and refraction effects; dithered or hue/value transparency; true refraction and pseudo-refraction; and more. (QB:TM #11) Gavan
Pixel Art Series #3 Discusses seamless tiling and eliminating that "grid" look on your sprites. (QB:TM #12) Gavan

RelSoft's 3D Series
Chapter 1: Entering The 3D Dimension Part 1 of the ultimate QB 3D series. Covers 3D projection, 2D and 3D rotations, 3D coordinate systems, polygon fills, normals and lightsourcing, rendering multiple objects and designing a 3D game engine. Relsoft
Chapter 2: Rotation -- The How's and Why's All about rotation, including the math to back it up! Relsoft
Chapter 3: Vectors Are Cool! Moving your 3D objects along vector lines, and much more dealing with vectors. Relsoft
Chapter 4: Matrices Are Your Friends How to simplify your 3D graphics routines by making use of matrices. Relsoft

QB:TM 3D Series by MA SNART and Alias
3D Series: Part 2 Translation and rotation across 2D planes. Includes quite a bit of source. (QB:TM #7) MA SNART
3D Series: Part 3 ASTEROIDS as a primer to 3d; make your own 3D "Asteroids" clone. Includes source and a lot of commentary. (QB:TM #8) MA SNART
3D Series: Part 4 An introduction to an alternate 3D graphics method: voxels. (QB:TM #9) Alias and MA SNART
3D Series: Part 5 Brief introduction to creating voxel-based 3D landscapes, and then a summary of other methods of creating 3D environments. (QB:TM #10) Alias
3D Series Part 6: Interpolation For Dummies Using list voxels and editors to create 3D environments with voxels. (QB:TM #11) Alias
3D Series Part 7: Voxel Render Problems Explains how to solve problems that might occur when rendering voxel graphics, such as solidity issues, hollowness, etc. (QB:TM #12) Alias

Beginner's Guide To VARSEG and VARPTR Shows you how to use VARSEG and VARPTR. Unlike most tutorials, it actually shows you how these commands work so you understand, instead of just giving you example code that uses the commands. (QB Chronicles #1) Fling-master
Double Buffering Speeding up and smoothing out your graphics without the use of external libraries through the process of double buffering. (VSNews Jan. '99) Richard Russo
Graphical Memory Virtual screens, memory addressing and more. Lots of good stuff on dealing with bitmap graphics in QB. (QB:TM #8) WhiteShadow
Page Flipping in 13h One method of page flipping in Screen 13 -- which isn't a built-in function of QB like on other screen modes (ie: 7). This is a work around to the limited array sizes allowed by QB. (QB Cult Magazine #1) Matthew R. Knight
Tutorial For OUT, PEEK and POKE A good tutorial for using OUT, PEEK, and POKE in your programs. Danny Beardsley

Submitted Graphics Tutorials
bsave.txt QBasic BSAVE Files. Shows you how to BSAVE and BLOAD graphics in Screen 13, and discusses memory offsets. (Submitted by Pete on July 21, 2004) Tek

Copyright © Pete's QBASIC / QuickBasic Site, 1998-2013.
All rights reserved. Site owned and operated by Pete Berg. Programs and submitted content are property of their creators, and appear on this site by direct or implied permission. Pete's QBasic Site is powered by Coranto. This site was created entirely in Notepad.