

Resources related to these tutorials
| 6502
                Cheatsheet - Commands and info Cheatsheet for 6502 assembly
                development - contains 6502, 65C02 and 6280 opcodes - also some
                65816 |  | 
| DevToos
                - My collection of 6502 Development tools and scripts Download these to get started with
                my 6502 tutorials quickly and easily. |  | 
| Sources.7z
                - All sourcecode for my tutorials Download this to get all the
                source code for my tutorials |  | 
| Lesson
                1 - Getting started with Retro Programming in Assembly Interested in Retro programming,
                Want to learn the concepts of Assembly and retro computers?...
                This is for you! This episode will go over the concepts of
                computing, and what assembly assembly language is, and what it
                can do for you!  [Documentation] [Video] | |
| Lesson
                2 - Basics… The Mysteries of the CPU! When we program in assembly, we
                need to know more than 'The CPU does processing'!... We'll need
                to understand what it can do, and how it does it!  [Documentation] [Video] | |
| Lesson
                3 - Basics… More Detailed Mysteries of the CPU! We learned quite a lot about the
                CPU last time, but there's some more specialist stuff we'll need
                to know for certain CPUs. Lets look at some more technical CPU
                wonders!  [Documentation] [Video] | |
| Lesson
                4 - Data Representation Knowing different representations
                of numbers tends to be more important in Assembly than languages
                like Basic and C++ that tend to do everything for us.  [Documentation] [Video] | |
| Lesson
                5 - Assembler Terminology. The Assembler is the program we
                will use to turn our text source file into an assembled program
                we can run. Lets learn the terminology we're likely to come
                across in our quest to go from source to something we can run!
                   [Documentation] [Video] | |
| Lesson
                6 - More Assembler Terminology! The Assembler is the program we
                will use to turn our text sourcefile into an assembled program
                we can run. Lets learn the terminology we're likely to come
                across!  [Documentation] [Video] | |
| Lesson
                7 - Even More Assembler Terminology!!!!111 The Assembler is the program we
                will use to turn our text sourcefile into an assembled program
                we can run. Lets learn the terminology we're likely to come
                across!  [Documentation] [Video] | |
| Lesson
                8 - Programming Techniques Assembly programming has some
                common programming techniques and methods it's worth pointing
                out, as they may help you design your programs.  [Documentation] [Video] | |
| Lesson
                9 - Graphics Terminology Lets look at some of the
                terminology we'll come across when it comes to graphics and
                video hardware when programming retro hardware in Assembly.
                   [Documentation] [Video] | |
| Lesson
                10 - Sound Terminology. In this lesson, We'll look at some
                of the concepts of making sounds for the 'less musical'
                programmer!  [Documentation] [Video] | |
| Lesson
                11 - Other Hardware Terminology There's a few other weird and
                (somewhat) wonderful terminology we may come across, that it's
                worth discussing at some point.... and that point is right here!
                   [Documentation] [Video] | 
| Lesson 1 -
                Getting started with 6502 [6502] Learn the basics of using VASM as
                an assembler, We'll cover the 'template' ASM file used by these
                tutorials, and look at the basic registers and numbers. Well
                also look at ADDition and SUBtraction, Jumping to subroutines
                (JSR), labels and moving data between registers with
                TXA,TYA,TAX,TAY. We'll also cover Loading and saving to and from
                memory. [Documentation] [Video] [Forum] |  | 
| Lesson 2 -
                Addressing modes on the 6502 [6502] The 6502 has a wide variety of
                'addressing modes' - Each addressing mode will change the way
                the final address a command loads from or saves to works, we can
                used fixed addresses, registers and many clever combinations!...
                we'll look at each with practical examples [Documentation] [Video] [Forum] |  | 
| Lesson 3 -
                Loops and Conditions [6502] We'll cover starting a program
                with ORG, labels, SEI for disabling interrupts, symbols with
                EQU, INC and DEC for + or - 1... Branches: BEQ BNE, BCS,BCC and many more! Compare with CMP, CPX, CPY... Jump with JMP, or subs with JSR... using BVC to simulate missing BRA [Documentation] [Video] [Forum] |  | 
| Lesson 4 -
                Stacks and Math [6502] The Stack is a temporary store we
                can transfer data into with PHA/PLA or PHP/PLP.. we'll also look
                at negative numbers, Conditional assembly with IFDEF, macros,
                and using 16 bit on the 8 bit 6502... also we'll take a look at
                how to effect simple multiplication or division on the 6502 [Documentation] [Video] [Forum] |  | 
| Lesson 5 -
                Bits and Shifts [6502] Logical Operations AND, ORA and
                EOR... bit rotation with ROL, ROR, ASL and LSR... bit test with
                BIT.. doing nothing with NOP [Documentation] [Video] [Forum] |  | 
| Lesson 6 -
                Defined data, Aligned data... Lookup Tables, Vector Tables, and
                Self-modifying code! [6502] Defining data with DB, DW and
                DS...reading values Lookup tables, jumping to locations in
                Vector Tables, Self Modifying code - code that rewrites itself! [Documentation] [Video] |  | 
| Lesson
                A1 - Extra commands in the 65c02 (Snes,Lynx & Apple II) and
                6280 (PC Engine) processor [6502] Many useful commands were added to
                the 6502. Lets learn about the extra commands that were added to
                the successor to the 65c02 and and 6280 [Documentation] [Video] [Forum] |  | 
| Lesson
                H1 - Hello World on the BBC Micro! [BBC] Lets learn how to make a simple
                'Hello World' on the Classic BBC Micro, we'll learn how to write
                the code, compile it with VASM, convert it to a disk image, and
                load it on an emulator [Documentation] [Video] |  | 
| Lesson
                H2 - Hello World on the C64 [C64] Lets learn how to make a simple
                'Hello World' on the Commodore 64, we'll learn how to write the
                code, compile a .PRG with VASM, and load it on an emulator [Documentation] [Video] |  | 
| Lesson
                H3 - Hello World on the VIC-20 [VIC] Lets learn how to make a simple
                'Hello World' on the VIC-20, we'll learn how to write the code,
                compile a .PRG with VASM, and load it on an emulator [Documentation] [Video] |  | 
| Lesson
                H4 - Hello World on the Atari 800 / 5200 [A52] [A80] Lets learn how to make a simple
                'Hello World' on the Atari 800 or Atari 5200, we'll learn how to
                write the code, compile a ROM with VASM, and load it on an
                emulator [Documentation] [Video] |  | 
| Lesson
                H5 - Hello World on the Apple II [AP2] Lets learn how to make a simple
                'Hello World' on the Commodore 64, we'll learn how to write the
                code, compile it with VASM, transfer it to a disk image, and
                load it on an emulator [Documentation] [Video] |  | 
| Lesson
                H6 - Hello World on the Atari Lynx [LNX] Lets learn how to make a simple
                'Hello World' on the Atari Lynx, we'll learn how to write the
                code, compile an unencrypted object file (.o) with VASM, and
                load it on an emulator [Documentation] [Video] |  | 
| Lesson
                H7 - Hello World on the Nes / Famicom [NES] Lets learn how to make a simple
                'Hello World' on the Nintendo Entertainment system, or Nintendo
                Famicom, we'll learn how to write the code, compile a NES ROM
                with VASM, and load it on an emulator [Documentation] [Video] |  | 
| Lesson
                H8 - Hello World on the SNES / Super Famicom [SNS] Lets learn how to make a simple
                'Hello World' on the Super Nintendo Entertainment System (AKA
                Super Famicom), we'll learn how to write the code, compile a SFC
                ROM, and load it on an emulator [Documentation] [Video] |  | 
| Lesson
                H9 - Hello World on the PC Engine/TurboGrafx-16 Card
                [PCE] Lets learn how to make a simple
                'Hello World' on the PC Engine (sold as the TurboGrafx 16 in the
                west), we'll learn how to write the code, compile a .PCE ROM
                with VASM, and load it on an emulator [Documentation] [Video] |  | 
| Lesson
                H10 - Hello World on the Commodore PET [PET]  The PET is the predecessor of the
                VIC-20, it's only capable of 'text graphics' and cannot allow
                custom characters. Lets learn how to make the PET to say 'Hello'  [Documentation]
                  [Video] |  | 
| Lesson
                H11 - Hello World on the BBC Micro with BBC Basic! [BBC] We learned before how to run a
                HELLO WORLD example, and assemble via windows with VASM. This
                time we'll use BBC basic's built in assembler, and compile and
                run our program from the BBC itself!  [Documentation][Video] |  | 
| Lesson
                S1 - Bitmap Drawing on the BBC
                [BBC] Lets look at a simple example of
                drawing an 8x8 smiley, and a 48x48 bitmap of our mascot using
                the bitmap screen [Documentation] [Video] |   | 
| Lesson
                S2 - Bitmap Drawing on the C64 [C64] Lets look at a simple example of
                drawing an 8x8 smiley, and a 48x48 bitmap of our mascot using
                the bitmap screen... we'll test this in 2 and 4 color mode [Documentation] [Video] |  | 
| Lesson
                S3 - Bitmap Drawing on the VIC-20 [VIC] Lets look at a simple example of
                drawing an 8x8 smiley, and a 48x48 bitmap of our mascot using
                custom VIC 20 characters. [Documentation] [Video] |   | 
| Lesson
                S4 - Bitmap Drawing on the Atari 800 / 5200 [A52]
                [A80] Lets look at a simple example of
                drawing an 8x8 smiley, and a 48x48 bitmap of our mascot using
                the bitmap screen in 4 or 2 color [Documentation] [Video] |   | 
| Lesson
                S5 - Bitmap Drawing on the Apple II [AP2] Lets look at a simple example of
                drawing an 8x8 smiley, and a 48x48 bitmap of our mascot using
                the bitmap screen. [Documentation] [Video] |   | 
| Lesson
                S6 - Bitmap Drawing on the Atari Lynx [LNX] Lets look at a simple example of
                drawing an 8x8 smiley, and a 48x48 bitmap of our mascot using
                the bitmap screen. [Documentation] [Video] |   | 
| Lesson
                S7 - Bitmap Drawing on the Nes / Famicom [NES] Lets look at a simple example of
                drawing an 8x8 smiley, and a 48x48 bitmap of our mascot using
                the Tile map. [Documentation] [Video] |   | 
| Lesson
                S8 - Bitmap Drawing on the SNES / Super Famicom [SNS] Lets look at a simple example of
                drawing an 8x8 smiley, and a 48x48 bitmap of our mascot using
                the Tile map. [Documentation] [Video] |   | 
| Lesson
                S9 - Bitmap Drawing on the on the PC Engine/TurboGrafx-16 Card
                [PCE] Lets look at a simple example of
                drawing an 8x8 smiley, and a 48x48 bitmap of our mascot using
                the Tile map. [Documentation] [Video] |   | 
| Lesson
                S10 - Joystick Reading on the BBC
                [BBC] We're going to extend the previous
                simple bitmap example, and add joystick reading to allow a
                player sprite to be moved around the screen. Lets learn how to add some control to our game! [Documentation] [Video] |  | 
| Lesson
                S11 - Joystick reading on the C64
                [C64] Lets take our previous Bitmap
                Smiley example, and extend it out into a joystick controlled
                movable object - we could use this as the starting point for a
                simple game. [Documentation] [Video] |  | 
| Lesson
                S12 - Joystick Reading on the VIC-20
                [VIC] The VIC-20 uses a digital
                joystick, and we can read it's directions in from a pair of
                ports... Lets enhance our previous bitmap example, and make it
                move! [Documentation] [Video] |  | 
| Lesson
                S13 - Joystick Reading on the Atari 800 / 5200
                [A52] [A80] Joystick reading on the Atari is
                easy... or a pain!... it just depends if you're programing for
                the Atari 800 (which has a digital input via the PIA) or the
                5200 (which has no PIA, so only has analog via the POKEY!)
                Either way, We'll figure it out... Here we go! [Documentation] [Video] |  | 
| Lesson
                S14 - Joystick Reading on the Apple II
                [AP2] Reading the Apple II Joystick is a
                serious pain! We have to read a single bit from the ports - and
                wait until it changes to get the analog values, then convert
                them to digital. Lets figure it out! [Documentation] [Video] |  | 
| Lesson
                S15 - Joypad Reading on the Atari Lynx
                [LNX] The Lynx makes joypad reading easy
                for us... we can just read the keypresses in from port $FCB0.
                Lets make it happen! [Documentation] [Video] |  | 
| Lesson
                S16 - Joypad Reading on the Nes / Famicom
                [NES] The Famicom/NES have digital
                joysticks... we can read the buttons in, but we have to do this
                a single key at a time... Let get it working! [Documentation] [Video] |  | 
| Lesson
                S17 - Joypad Reading on the SNES / Super Famicom
                [SNS] The Famicom/NES have digital
                joysticks... we can read the buttons in, but we have to do this
                a single key at a time... Let get it working! [Documentation] [Video] |  | 
| Lesson
                S18 - Bitmap Drawing on the on the PC Engine/TurboGrafx-16 Card
                [PCE] The PC-Engine uses a single port
                with  4 bits to send the joypad buttons - it also supports
                up to 5 joypads via a multitap. We'll need to reset the multitap, and read in Joypad 1 - Lets get started. [Documentation] [Video] |  | 
| Lesson
                S19 - Keypad Reading on the Commodore PET! [PET] Let's use the keyboard to move a
                simple character block 'sprite' around the screen of the
                Commodore Pet! [Documentation] [Video] |  | 
| Lesson
                S20 - Sprite Clipping on the BBC [BBC] We've looked before at drawing a
                bitmap to the screen, but there's a challenge! For many games
                we'll need to be able to draw sprites that are 'partially off'
                the screen, We'll clip off the offscreen part. Lets look at the
                upgraded code. [Documentation] [Video] |  | 
| Lesson
                S21 - Sprite Clipping on the C64 [C64] We've looked before at drawing a
                bitmap to the screen, but we need to do better! For many games
                we'll need to be able to draw sprites that are 'partially off'
                the screen, We'll clip off the offscreen part. Lets look at the
                upgraded code. [Documentation] [Video] |  | 
| Lesson
                S22 - Sprite Clipping on the VIC-20 [VIC] We've looked before at drawing a
                bitmap to the screen, but we need to do better! For many games
                we'll need to be able to draw sprites that are 'partially off'
                the screen, We'll clip off the offscreen part. Lets look at the
                upgraded code. [Documentation] [Video] |  | 
| Lesson
                S23 -Sprite Clipping on the Atari 800 / 5200 [A52]
                [A80] Lets port our sprite clipping
                routine to the Atari systems, We'll 'upgrade' our previous
                sprite routine, so it can crop the sprites so they are partially
                offscreen. [Documentation] [Video] |  | 
| Lesson
                S24 - Sprite Clipping on the Apple II [AP2] The Apple II screen is kind of
                Black and white - and Kind of color!... depending on the
                combination... lets learn what it all means, and get a smiley
                onscreen! [Documentation] [Video] |  | 
| Lesson
                S25 - Sprite Clipping on the Atari Lynx [LNX] We drew a sprite to the screen
                before, now lets upgrade it with some sprite clipping. [Documentation] [Video] |  | 
| Lesson
                S26 -  Tile Bitmap Clipping on the NES [NES] We drew our 'Chibiko' mascot on
                the NES using the tilemap before, this time we'll improve the
                code, allowing the image to be clipped. Lets have a go! [Documentation] [Video] |  | 
| Lesson
                S27 - Hardware Sprite Clipping on the NES [NES] Using the Tilemap isn't so useful
                for moving objects, as we can't shift the co-ordinates at the
                pixel level, This time, lets do the same as last time, but we'll make our 48x48 pixel sprite out of 6x6 hardware sprites for smooth moves! [Documentation] [Video] |  | 
| Lesson
                S28 -  Tile Bitmap Clipping on the SNES [SNS] We drew our 'Chibiko' mascot on
                the SNES using the tilemap before, this time we'll improve the
                code, allowing the image to be clipped. Lets have a go! [Documentation] [Video] |  | 
| Lesson
                S29 - Hardware Sprite Clipping on the SNES [SNS] Using the Tilemap isn't so useful
                for moving objects, as we can't shift the co-ordinates at the
                pixel level, This time, lets do the same as last time, but we'll make our 48x48 pixel sprite out of 6x6 hardware sprites for smooth moves! [Documentation] [Video] |  | 
| Lesson
                S30 - Tile Bitmap Clipping on the PC-Engine/Turbografix
                [PCE] We drew our 'Chibiko' mascot on
                the PC-Engine using the tilemap before, this time we'll improve
                the code, allowing the image to be clipped. Lets have a go! [Documentation] [Video] |  | 
| Lesson
                S31 - Hardware Sprite Clipping on the PC-Engine [PCE] Using the Tilemap isn't so useful
                for moving objects, as we can't shift the co-ordinates at the
                pixel level, This time, lets do the same as last time, but we'll make our 48x48 pixel sprite out of 3x3 hardware sprites (16 pixel square) for smooth moves! [Documentation] [Video] |  | 
| Lesson
                S32 - Char Block clipping on the Commodore PET! [PCE] Lets alter our previous bitmap
                drawing routine, and allow it to be clipped so it can be
                partially offscreen. [Documentation] [Video] |  | 
| Lesson
                  P1 - Bitmap Functions on the BBC [BBC] In this lesson we'll take a look
                  at the BBC screen layout, we'll learn how to set up the
                  screen, calculate memory addresses for screen location and
                  draw on the screen [Documentation] [Video] [Forum] |  | |
| Lesson
                  P2 - Bitmap Functions on the Atari 800 / 5200 [A52]
                  [A80] In this lesson we'll take a look
                  at the Atari 800 and 5200 screen, we'll learn how to set up
                  the screen, calculate memory addresses for screen location and
                  draw on the screen [Documentation] [Video] [Forum] |  | |
| Lesson
                  P3 - Bitmap Functions on the Apple II [AP2] In this lesson we'll take a look
                  at the Apple II screen layout, we'll learn how to set up the
                  screen, calculate memory addresses for screen location and
                  draw on the screen, we'll also cover how the colors work on
                  the Apple 2 [Documentation] [Video] [Forum] |  | |
| Lesson
                  P4 - Bitmap Functions on the Atari Lynx [LNX] In this lesson we'll take a look
                  at the Atari Lynx screen layout, we'll learn how to set up the
                  screen, calculate memory addresses for screen location and
                  draw on the screen. [Documentation] [Video] [Forum] |  | |
| Lesson
                  P5 - Bitmap Functions on the PC Engine (TurboGrafx-16)
                  [PCE] In this lesson we'll take a look
                  at the PC Engine Tilemap, we'll learn how to set up the
                  screen, calculate memory addresses for screen location and
                  draw on the screen with tiles. [Documentation] [Video] [Forum] |  | |
| Lesson
                  P6 - Bitmap Functions on the NES / Famicom [NES] In this lesson we'll take a look
                  at the Nintendo Entertainment system / Famicom TileMap, we'll
                  learn how to set up the screen, Define tiles, and draw them to
                  the screen. [Documentation] [Video] [Forum] |  | |
| Lesson
                  P7 - Bitmap Functions on the SNES / Super Famicom
                  [SNS] In this lesson we'll take a look
                  at the Super Nintendo Entertainment System Tilemap, we'll
                  learn how to set up the screen, Define Tiles and draw on the
                  screen. [Documentation] [Video] [Forum] |  | |
| Lesson
                  P8 - Bitmap Functions on the VIC-20 [VIC] In this lesson we'll take a look
                  at the VIC 20 screen layout, we'll learn how to set up the
                  screen, define custom characters and draw on the screen. [Documentation] [Video] [Forum] |  | |
| Lesson
                  P9 - Bitmap Functions on the C64 [C64] In this lesson we'll take a look
                  at the Commodore 64 screen layout, we'll learn how to set up
                  the screen, Calculate locations and draw on the screen, we'll
                  also learn how the 2 and 4 color modes work, and the addresses
                  color attributes use. [Documentation] [Video] [Forum] |  | |
| Lesson
                  P10 - Joystick Reading on the BBC [BBC] Lets take a look at the BBC
                  Joystick - we'll learn how to read the port, and convert to a
                  'digital' 4 direction input for easy programming [Documentation] [Video] [Forum] |  | |
| Lesson
                  P11 - Joystick Reading on the Atari 800 / 5200
                  [A52] [A80] The Atari 800 and 5200 are
                  actually quite different when it comes to Joystick / Paddle
                  reading, lets take  [Documentation] [Video] [Forum] |  | |
| Lesson
                  P12 - Joystick Reading on the Apple II [AP2] Lets take a look at the Apple 2
                  Joystick- we'll learn how to read the port, and convert to a
                  'digital' 4 direction input for easy programming [Documentation] [Video] [Forum] |  | |
| Lesson
                  P13 - Joystick Reading on the Atari Lynx [LNX] In this lesson we'll take a look
                  at the VIC 20 screen layout, we'll learn how to set up the
                  screen, define custom characters and draw on the screen. [Documentation] [Video] [Forum] |  | |
| Lesson
                  P14 - Joystick Reading on the PC Engine (TurboGrafx-16)
                  [PCE] Lets take a look at the
                  PC-Engine Joypad, we'll learn how to read the Joypad ports and
                  get the direction and fire buttons [Documentation] [Video] [Forum] |  | |
| Lesson
                  P15 - Joystick Reading on the NES / Famicom and SNES
                  [NES][SNS] Lets take a look at the Nintendo
                  Entertainment System and Super Nintendo Joypad, we'll learn
                  how to read the Joypad ports and get the direction and fire
                  buttons [Documentation] [Video] [Forum] |  |  | 
| Lesson
                  P16 - Joystick Reading on the VIC-20 [VIC] Lets take a look at reading
                  joystick controls on the VIC20 and get the direction and fire
                  buttons [Documentation] [Video] [Forum] |   | |
| Lesson
                  P17 - Palette definitions on the BBC [BBC] Lets learn about color
                  definitions of the BBC Micro and how to select the visible
                  colors from the BBC palette [Documentation] [Video] |   | |
| Lesson
                  P18 - Palette definitions on the Atari 800 / 5200 [A52]
                  [A80] This tutorial will teach you how
                  to set the Palette on the Atari computer 800 and Atari 5200
                  console [Documentation] [Video] |   | |
| Lesson
                  P19 - Palette definitions on the Atari Lynx [LNX] |   | |
| Lesson
                  P20 - Palette definitions on the PC Engine (TurboGrafx-16)
                [PCE] This Tutorial will help you
                  learn how to set the color Palette on the PC Engine or
                  TurboGrafx 16 [Documentation] [Video] |   | |
| Lesson
                  P21 - Palette Definitions on the NES [NES] Learn how to set the color
                  Palette on the Nintendo Entertainment System or Nintendo
                  Famicom [Documentation] [Video] |  | |
| Lesson
                  P22 - Palette Definitions on the SNES / Super Famicom
                  [SNS] |   | |
| Lesson
                  P22 (z80) - Sound with the SN76489 on the BBC Micro
                  [BBC] Learn how to make sound on the
                  BBC, this was a z80 tutorial, but covers the 6502 BBC as well [Documentation] [Video] |   | |
| Lesson
                  P23 - Sound on the Atari 800 / 5200 [A52] [A80] This tutorial will teach you how
                  to make simple sounds on the Atari 800 and Atari 5200 [Documentation] [Video] |   | |
| Lesson
                  P23 (Z80) - Sound with the 'Beeper' on the Apple II
                  [AP2] Learn how to make simple sounds
                  on the Apple II, this was a z80 tutorial, but covers the 6502
                  Apple 2 as well [Documentation] [Video] |   | |
| Lesson
                  P24 - Sound on the Atari Lynx [LNX] |  | |
| Lesson
                  P25 - Sound on the PC Engine (TurboGrafx-16) [PCE] |  | |
| Lesson
                  P26 - Sound on the NES / Famicom [NES] Learn how to make simple sounds
                  on the Nintendo Entertainment System or Famicom [Documentation] [Video] |  | |
| Lesson
                  P27 - Sound on the SNES / Super Famicom: the SPC700
                  [SNS] This Tutorial will help you
                  learn how to make simple sounds on the Super Nintendo  [Documentation] [Video] |  | |
| Lesson
                  P28 - Sound on the SNES / Super Famicom: Writing ChibiSound
                [SNS] |  | |
| Lesson
                  P29 - Sound on the on the VIC-20 [VIC] |  | |
| Lesson
                  P30 - Sound on the C64 [C64] This Tutorial will help you
                  learn how to make simple sounds on the Commodore 64 [Documentation] [Video] |  | |
| Lesson
                  P31 - Hardware Sprites on the Atari 800 / 5200
                  [A52] [A80] |  | |
| Lesson
                  P32 - Hardware sprites on the Atari Lynx [LNX] This Tutorial will help you
                  learn how to use the sprite hardware to render sprites on the
                  Atari Lynx  [Documentation] [Video] |  | |
| Lesson
                  P33 - Hardware Sprites on the PC Engine (TurboGrafx-16)
                  [PCE] |  | |
| Lesson
                  P34 - Hardware Sprites on the NES / Famicom [NES] Lets learn how to use hardware
                  sprites on the Nintendo Entertainment System or Famicom [Documentation] [Video] |  | |
| Lesson
                  P35 - Hardware Sprites on the SNES / Super Famicom
                  [SNS] This tutorial will show you how
                  to use sprites on the Super Nintendo Entertainment System
                  (Super Nes) [Documentation] [Video] |  | |
| Lesson
                  P36 - Hardware Sprites on the C64 [C64] |  | |
| Lesson
                  P37 - Screen settings with the CRTC on the BBC Micro!
                  [BBC] The BBC Screen uses the same
                  CRTC chip as the Amstrad CPC - and allows for reshaping and
                  reconfiguration of the screen - lets take a look, and see what
                  the settings do to the visible screen [Documentation] [Video] |   | |
| Lesson
                  P38 - Character Block Graphics on the PET! [PET] The PET does not have bitmap
                  graphics, what it does have is the full combination of
                  possibilities of a 2x2 'block' pixels defined as characters. We can use these for simple graphics. [Documentation] [Video] |  | |
| Lesson
                  P39 - Key reading on the PET [PET] In this episode we'll learn how
                  to read in from the keyboard, We'll read in keys, and use them to simulate the Up,Down,Left,Right and Fire of a controller - we'll use this for games later! [Documentation] [Video] |  | |
| Lesson
                  P39 - Key reading on the PET [PET] In this episode we'll learn how
                  to read in from the keyboard, We'll read in keys, and use them to simulate the Up,Down,Left,Right and Fire of a controller - we'll use this for games later! [Documentation] [Video] |   | |
| Lesson
                  P40 - Sound on the PET [PET] While the PET didn't come with a
                  speaker, it's possible to add one to the external IO port. We can then use it to make simple beeps... Lets learn how! [Documentation] [Video] |  | |
| Lesson
                  P41 - Multiple layers on the SNES [SNS] We've learned how to use a
                  single tilemap layer in the past, but the SNES is capable of
                  much more! This time we'll take a look at a more complex setup, with 3 layers... 2x 16 color and 1x 4 color. [Documentation] [Video] |  | |
| Lesson
                  P42 - Color maths on the Super Nintendo [SNS] Last time we used 3 layers, but
                  the SNES has some tricks up its sleeve, We can split these layers into two groups, then use 'color maths' to achieve transparency and masking effects... lets see it in action! [Documentation] [Video] |  | |
| Lesson
                  P43 - Splitscreen scrolling and Sprite 0 Hit on the NES!
                  [NES] The NES only has one tilemap,
                  but we can change the scroll midscreen to do a splitscreen
                  effect.... unfortunately it's a bit tricky! With Mapper 3 we can use a line IRQ to cause an interrupt midscreen to do the work... on other mappers, we may have to use the Sprite0Hit to detect the line. [Documentation] [Video] |  | |
| Lesson
                  P44 - The NES Zapper! [NES] The NES has a Lightgun... it
                  detects light, and is also a gun! Let's lock and load, and learn how to zap us some chibis! [Documentation] [Video] |   | |
| Lesson
                  P45 - Sound on the BBC (ChibiSound Pro) [BBC] Lets take another look at sound!
                  We'll write a new multi-platform sound driver, which will give
                  us control over the hardware, and allow us to write a music
                  player which will work in a common way on all systems.
                     [Documentation] [Video] |  | |
| Lesson
                  P46 - Sound
                  on the C64 (ChibiSound Pro) [C64] Lets take another look at sound!
                  We'll write a new multi-platform sound driver, which will give
                  us control over the hardware, and allow us to write a music
                  player which will work in a common way on all systems.
                     [Documentation] [Video] |  | |
| Lesson
                  P47 - Sound on the NES (ChibiSound Pro) [NES] Lets take another look at sound!
                  We'll write a new multi-platform sound driver, which will give
                  us control over the hardware, and allow us to write a music
                  player which will work in a common way on all systems.
                     [Documentation] [Video] |  | |
| Lesson
                  P48 - Sound on the PC Engine (ChibiSound Pro) [PCE] Lets take another look at sound!
                  We'll write a new multi-platform sound driver, which will give
                  us control over the hardware, and allow us to write a music
                  player which will work in a common way on all systems.
                     [Documentation] [Video] |  | |
| Lesson
                  P49 - Sound on the Commodore PET (ChibiSound Pro) [PET] Lets take another look at sound!
                  We'll write a new multi-platform sound driver, which will give
                  us control over the hardware, and allow us to write a music
                  player which will work in a common way on all systems.
                     [Documentation] [Video] |  | |
| Lesson
                  P50 - Sound on the VIC-20 (ChibiSound Pro) [VIC] Lets take another look at sound!
                  We'll write a new multi-platform sound driver, which will give
                  us control over the hardware, and allow us to write a music
                  player which will work in a common way on all systems.
                     [Documentation] [Video] |  | |
| Lesson
                  P51 - Sound on the Atari 800 / 5200 (ChibiSound Pro) [A52]
                  [A80] |  | |
| Lesson
                  P52 - Sound on the SuperNintendo (ChibiSound Pro) [SNS]  Lets take another look at
                  sound! We'll write a new multi-platform sound driver, which
                  will give us control over the hardware, and allow us to write
                  a music player which will work in a common way on all systems.
                     [Documentation] [Video] |  | |
| Lesson
                  P53 - Sound on the Apple II [AP2] The Apple II only has beeper
                  sound, so we'll have a challenge to play any music!  [Documentation] [Video] |  | |
| Lesson
                  P54 - Sound on the Atari Lynx [LNX] |  | |
In this series I remake the old DOS game 'Grime'. This series teaches simple tile drawing.
| 0. Grime 6502 The 14 days
                of Grime-Mass No Description Available  [Video] |  | 
| 1. Grime 6502 - Episode 1
                : Starting With Tiles! No Description Available  [Video] |  | 
| 2. Grime 6502 - Episode 2
                : Taking the TileMap to Full Power!!! No Description Available  [Video] |  | 
| 3. Grime 6502 - Episode 3
                : The Player and the Joystick! No Description Available  [Video] |  | 
| 4. Grime 6502 - Episode 4
                : Time for GRIME! No Description Available  [Video] |  | 
| 5. Grime 6502 - Episode 5
                : Fully Functional! No Description Available  [Video] |  | 
| 6. Grime 6502 - Episode 6
                : Snes DMA, NES NMI... and Apple II has nice sprites! No Description Available  [Video] |  | 
| 7. Grime 6502 - Episode 7
                : Mission Complete! No Description Available  [Video] |  | 
| 8. Grime 6502 - Completed
                project code summary No Description Available  [Video] |  | 
In this series I remake the old DOS game 'X-quest'. This series teaches simple tile drawing and hardware sprites on systems where they are available.
| Lesson
                YQuest1 - Introduction and Data Structures Lets start by having a quick look
                at the game, and the structure of the game RAM, and the settings
                which define levels and enemies.  [Documentation][Video] |  | 
| Lesson
                YQuest2 - BBC Specific code [BBC] The BBC version was the first port
                of the game on the 6502. The BBC is a bitmap based system, with
                software sprites. Lets take a look at the code.  [Documentation][Video] |  | 
| Lesson
                YQuest3 - Atari Lynx Specific code [LNX] the Lynx version uses 16 color
                bitmap graphics, giving great look and smooth movement.
                Unfortunately, the screen size is rather small, so we'll resize
                our graphics to 8x6 tiles rather than 8x8  [Documentation][Video] |  | 
| Lesson
                YQuest4 - C64 Specific code [C64] The C64 version uses single byte
                wide (4 pixel) sprites - it uses 4 color mode. Lets take a look!
                   [Documentation][Video] |  | 
| Lesson
                YQuest5 - Apple II Specific code [AP2] The Apple II version is basically
                black and white, it's actually pretty straight forward, Lets get
                the port done!  [Documentation][Video] |  | 
| Lesson
                YQuest6 - Atari 800 / Atari 5200 Specific code [A52]
                [A80] The Atari 800/5200 version uses 4
                color mode… due to the size of the program, we'll have to
                position the Display list right at the end of the ROM so it will
                work ok on the Atari 800. The sprites will be half width 4x8
                pixels  [Documentation][Video] |  | 
| Lesson
                YQuest7 - PC Engine / Turbografix Specific code [PCE] Lets port Yquest to the PC-Engine.
                For simplicity, We're going to use the tilemap to do the
                graphics... we're going to have some trouble though, as the
                default bank mapping only gives us 8k ram!  [Documentation][Video] |  | 
| Lesson
                YQuest8 - VIC20 Specific code [VIC] The Vic-20 version uses custom
                characters to simulate Tiles / Sprites... Lets look at the
                VIC-20 version of the game  [Documentation][Video] |  | 
| Lesson
                YQuest9 - NES Specific code [NES] Lets look at the NES port - We'll
                be using the tilemap to do the ingame graphics. Unfortunately
                because we can't write to VRAM except during Vblank, we'll
                create a buffer to store the changes, then transfer the buffer
                during Vblank [Documentation][Video] |  | 
| Lesson
                YQuest10 - SNES Specific code [SNS] It's time for the SNES version...
                like the NES we need a buffer of the tilemap data... unlike the
                NES version we can use a DMA to copy a whole tilemap during
                vblank.  [Documentation][Video] |  | 
| Lesson
                YQuest11 - Hardware Sprites on the PC Engine / Turbografix [PCE] Our Yquest program currently only
                uses the Tilemap... Lets extend it to use Hardware sprites!.
                This will give the game nice smooth movement... lets learn how
                to use PCE hardware sprites!  [Documentation][Video] |  | 
| Lesson
                YQuest12 - adding Hardware Sprites on the NES [NES] Lets add hardware sprites to the
                NES... unfortunately, like the Tilemap, we can't alter hardware
                sprites outside of VBlank - so once again we'll use a buffer,
                and transfer it during Vblank [Documentation][Video] |  | 
| Lesson
                YQuest13 - SNES Hardware sprites. [SNS] Like the tilemap, we can't write
                to the sprites out of Vblank, so once again we'll use a buffer
                for the sprites, and use the DMA to transfer the sprite data to
                vram  [Documentation][Video] |  | 
| Lesson
                YQuest14 - C64 Hardware Sprites [C64] We were using bitmap graphics
                before for our game - making the objects move in 4x8 blocks The
                C64 has 8 hardware sprites - we'll use one to draw the player,
                which will allow for smooth movement.  [Documentation][Video] |  | 
In this series I make a classic 'Tron' game... this series teaches Pixel plotting and line drawing on all systems
| 6502
                - Lesson CT2 - ChibiTracks Header Load and Init Lets take a look at a ChibiTracks
                ASM source file - as saved by ChibiTracker PRO! These are used
                to load and save work in progress songs - and can also be
                compiled by VASM into playable songs with ChibiTracks! [Documentation] [Video] |   | 
| 6502
                - Lesson CT2 - ChibiTracks Header Load and Init |   | 
| 6502
                ChibiTracks3 Lesson CT3 - The main play routine |   | 
| 6502
                Lesson CT4 - Tone Calculation The Note number and pitch shift
                need to be used to calculate a 16 bit DE value for ChibiSound
                Pro... Lets learn how!  [Documentation] [Video] |   |