Resources related to these tutorials
Z80
Cheatsheet - Commands and info Cheatsheet for Z80 assembly
development - contains Z80 commands details and other useful
information
|
|
DevToos
- My collection of Z80 Development tools and scripts Download these to get started with
my Z80 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 winape [Z80] [CPC] [CPC] & [Z80] Learn how to
get started with Winape CPC emulator (The Easiest way to work
with Z80), start a simple program, compile, and run if from
basic. Learn to use the Debugger to see the contents of
registers and memory
[Documentation] [Video] |
||
Lesson
2 - Memory copy, Symbol definitions, Loops and Conditional
Jumps! [Z80] Using LDIR, Compare with CP, Jumps
based on conditions (JP), Symbols with EQU
[Documentation] [Video] |
||
Lesson
3 - 'Case Statement' , 8 bit basic Maths, Writing to Ram and
Reading from basic [Z80] Case statement via multiple CP
statements, simulating multiply and divide, passing parameters
to and from basic via POKEing memory,
[Documentation] [Video] |
||
Lesson 4 - Stack, Strings,Compiler Directives, Indirect
registers, CPC Call [Z80] PUSH and POP with the stack,
Compiler directives IFDEF, ELSE, ENDIF. Indirect registers IX,
IY for address in register+offset
[Documentation] [Video] |
||
Lesson
5 - Bit level operations, Self modifying code [Z80]
[CPC] Bitwise operations - AND, OR,
XOR. Bit operations SET, RES, BIT... Shifting and rotation with
SLL, SRL, SLA,SRA, RLCA, RRCA, RL, RR... Carry Flags, Self
modifying code. NOP - no operation
[CPC] Calls with parameters [Documentation] [Video] |
||
Lesson
6 - Lookup table, Screen Co-ordinates, Vector Tables,
Basic Parameters Byref [Z80] [CPC] Look up tables, ALIGN for aligned
code, Undocumented registers IXH, IXL, IYH, IYL... swapping
registers with EX DE,HL... Vector Tables for jumps
[CPC] Screen Co-ordinates, specifying References with @ and integers with % [Documentation] [Video] |
||
Lesson
7 - DI EI, RST x, Custom Interrupts, IM1/IM2, HALT, OTI / OTIR,
HALT [Z80] [CPC] RST 7 / RST &38 - interrupt
handler... Interrupt mode 1 (IM1) Shadow registers EXX and EX
AF,AF'... Disable interrupts (DI) Enable interrupts (EI), Stop
interrupts with HALT... reading and writing to hardware via
ports with IN and OUT...
[CPC] Raster color switching [Documentation] [Video] |
||
Lesson
8 - Unwrapped Loops, Stack Misuse for speed & rarer Z80
commands [Z80]
[CPC] I register (IM2 Interrupt address
top byte) R register (memory Refresh)... DAA for Decimal Adjust
Acumulator (Binary Coded Decimal)... Return from interrupts with
RETI and RETN... repeated port access with IND, INDR, INI, INIR,
OUTD, OTDR... alter the stack pointer with INC/DEC SP, swap with
the stack with EX (SP),HL... unwrap loops... Stack Misuse
[Documentation] [Video] |
The 'Hello World' Series teaches how to create a simple program, compile it and run it on an emulator to show the classic 'Hello World' Message
Lesson
H1 - Hello World on the CPC [CPC] Learn how to show 'Hello World'
using the firmware, Compile a program with winape, Make a Disk
Image or Tape Image file for the amstrad, Make a GX4000
cartridge
[Documentation] [Video] |
||
Lesson
H2 - Hello World on the ZX Spectrum [ZXS] Learn how to Show Hello World on
the screen, Compile for the spectrum with VASM, build a DSK or
TRD Disk Image for the spectrum,make a TAP tape image on the
spectrum
[Documentation] [Video] |
||
Lesson
H3 - Hello World on the MSX / MSX2 [MSX] Learn how to Make hello world for
the MSX1 or MSX2, build with Vasm, Create an MSX cartridge, Make
an MSX Disk image
[Documentation] [Video] |
||
Lesson
H4 - Hello World on the Sam Coupe [SAM] Learn how to make Hello World on
the San Coupe, build with vasm, create a Sam Coupe disk image
with an 'AutoGo' file that autoloads, and run the program.
[Documentation] [Video] |
||
Lesson
H5 - Hello World on the Elan Enterprise [ENT] Learn how to make Hello World on
the Elan Enterprise, compile with Vasm, run a program with
FileIO, run a program from an Enterprise Disk Image,
[Documentation] [Video] |
||
Lesson
H6 - Hello World on the Camputers Lynx [CLX] Show Hello World on the Camputers
Lynx, Compile with VASM, Build a Lynx TAP tape image and start
it with Jynx
[Documentation] [Video] |
||
Lesson
H7 - Hello World on the TI-83 [TI8] Make Hello world for the TI-83
calculator, Compile with VASM, convert to an executable 8XP for
the TI with bin28xp, load an 8XP from within the TI calculator
[Documentation] [Video] |
||
Lesson
H8 - Hello World on the Sega Master System and GameGear
[SMS] [SGG] Make Hello World with the Master
System or Game Gear, making a valid ROM file for the master
system or game gear, calculating a valid CRC checksum
[Documentation] [Video] |
||
Lesson
H9 - Hello World on the Gameboy and Gameboy Color [GMB]
[GBC] Make Hello World for the Gameboy
or Gameboy Color, making a gameboy romfile, calculating a valid
CRC for gameboy roms
[Documentation] [Video] |
||
Lesson
H10 - Hello World on the ZX81 [ZX8] The ZX81 is much earlier than the
Speccy, and it's hardware is far more limited... We'll have to
include some 'special code' in our example to make something the
ZX81 can run!
[Documentation] [Video] |
||
Lesson
H11 - Hello World on the CPC via Native Tools (MAXAM) [CPC] Lets try something a bit
different!... We've built 'Hello World' on the CPC before, but
this time lets try with the CPC's own assembler, MAXAM!
[Documentation][Video] |
Lesson
S1 - Easy Sprites on the CPC [CPC] Let's learn how to draw an 8x8
'tile' or a 48x48 bitmap sprite on the Amstrad CPC in a single
simple ASM File
[Documentation] [Video] |
||
Lesson
S2 - Easy Sprites on the ZX Spectrum [ZXS] Let's learn how to draw an 8x8
'tile' or a 48x48 bitmap sprite on the ZX Spectrum in a single
simple ASM File
[Documentation] [Video] |
|
|
Lesson
S3 - Easy Sprites on the Enterprise [ENT] Let's learn how to draw an 8x8
'tile' or a 48x48 bitmap sprite on the Enterprise in a single
simple ASM File
[Documentation] [Video] |
|
|
Lesson
S4 - Easy Sprites on the Sam Coupe [SAM] Let's learn how to draw an 8x8
'tile' or a 48x48 bitmap sprite on the Sam Coupe in a single
simple ASM File
[Documentation] [Video] |
|
|
Lesson
S5 - Easy Sprites on the MSX2 [MSX] Let's learn how to draw an 8x8
'tile' or a 48x48 bitmap sprite on the MSX2 in a single simple
ASM File
[Documentation] [Video] |
||
Lesson
S6 - Easy Tiles on the MSX1 [MSX] Let's learn how to draw an 8x8
'tile' or a 48x48 bitmap sprite on the MSX 1 in a single simple
ASM File
[Documentation] [Video] |
||
Lesson
S7 - Easy Sprites on the Camputers Lynx [CLX] Let's learn how to draw an 8x8
'tile' or a 48x48 bitmap sprite on the Camputers Lynx in a
single simple ASM File
[Documentation] [Video] |
||
Lesson
S8 - Easy Sprites on the TI-83 [TI8] Let's learn how to draw an 8x8
'tile' or a 48x48 bitmap sprite on the TI-83 in a single simple
ASM File
[Documentation] [Video] |
||
Lesson
S9 - Easy Tile bitmaps on the Gameboy and Gameboy Color [GMB]
[GBC] Let's learn how to set a tile or
a 48x48 bitmap with multiple tiles on the Gameboy and Gameboy
Color in a single simple ASM File
[Documentation] [Video] |
||
Lesson
S10 - Easy Tile bitmaps on the Sega Mastersystem or GameGear
[SMS] [SGG] Let's learn how to set a tile or
a 48x48 bitmap with multiple tiles on the Sega Master System and
Game Gear in a single simple ASM File
[Documentation] [Video] |
||
Lesson
S11 - Joystick Reading on the Amstrad CPC [CPC] This tutorial will teach you how
to add Joystick input to the previous bitmap example
[Documentation] [Video] |
||
Lesson
S12 - KeyControl Reading on the ZX Spectrum [ZXS] |
||
Lesson
S13 - Joystick reading on the Enterprise [ENT] |
|
|
Lesson
S14 - Key Reading on the Sam Coupe [SAM] This tutorial will teach you how
to add keyboard input to the previous bitmap example
[Documentation] [Video] |
|
|
Lesson
S15 - Joystick Reading on the MSX1 + MSX2 [MSX] |
|
|
Lesson
S16 - Keyboard Reading on the Camputers Lynx [CLX] |
||
Lesson
S17 - Easy Sprites on the Spectrum NEXT [ZXN] The Spectrum NEXT extends the
graphical capabilities of the Speccy, adding a 256 color mode
known as 'Layer 2'
Lets learn how to use it, and get a bitmap on the screen! [Documentation] [Video] |
||
Lesson
S18 - KeyControl Reading on the Spectrun Next [ZXN] |
||
Lesson
S19 - Joypad reading on the Gameboy and Gameboy Color[GBC]
We learned how to get a smiley on the screen before... this time lets get it moving! [Documentation] [Video] |
||
Lesson
S20 - Easy Joypad reading on the Sega Mastersystem or GameGear
[SMS] [SGG]
Lets extend our previous smiley sprite example, and move the sprite around the screen with the joypad. [Documentation] [Video] |
||
Lesson
S21 - Sprite Drawing and Key Reading on the ZX81 [ZX8] Lets move a little sprite around the screen with with the QAOP keys! [Documentation] [Video] |
||
Lesson
S22 - Sprite clipping on the Amstrad CPC (Part 1/2) [CPC] We drew our 'Chibiko' mascot to
the screen before, but this time we're going to improve the
algorithm. First we'll add 'sprite clipping' so parts of the
sprite can go offscreen.
[Documentation] [Video] |
||
Lesson
S23 - Sprite clipping on the Amstrad CPC (Part 2/2) - Stack
misuse [CPC] Lets look at the rest of the
sprite clipping code, and the use of 'Stack Misuse' to speed up
writing!
[Documentation] [Video] |
||
Lesson
S24 - Sprite clipping on the ZX Spectrum (Part 1/2) [ZXS] We drew our 'Chibiko' mascot to
the screen before, but this time we're going to improve the
algorithm. First we'll add 'sprite clipping' so parts of the
sprite can go offscreen.
[Documentation] [Video] |
||
Lesson
S25 - Sprite clipping on the ZX Spectrum (Part 2/2) - Stack
misuse [ZXS] Lets look at the rest of the
sprite clipping code, and the use of 'Stack Misuse' to speed up
writing!
[Documentation] [Video] |
||
Z80
Lesson S26 - Sprite clipping on the Elan Enterprise (Part 1/2)
[ENT] We drew our 'Chibiko' mascot to
the screen before, but this time we're going to improve the
algorithm. First we'll add 'sprite clipping' so parts of the
sprite can go offscreen.
[Documentation] [Video] |
||
Z80
Lesson S27 - Sprite clipping on the Elan Enterprise (Part 2/2) -
Stack misuse [ENT] Lets look at the rest of the
sprite clipping code, and the use of 'Stack Misuse' to speed up
writing!
[Documentation] [Video] |
||
Lesson
S28 - Sprite clipping on the Sam Coupe (Part 1/2) [SAM] We drew our 'Chibiko' mascot to
the screen before, but this time we're going to improve the
algorithm. First we'll add 'sprite clipping' so parts of the
sprite can go offscreen.
[Documentation] [Video] |
||
Lesson
S29 - Sprite clipping on the Sam Coupe (Part 2/2) - Stack misuse
[SAM] Lets look at the rest of the
sprite clipping code, and the use of 'Stack Misuse' to speed up
writing!
[Documentation] [Video] |
||
Lesson
S30 - Sprite clipping on the Spectrum Next (Part 1/2) [ZXN] We drew our 'Chibiko' mascot to
the screen before, but this time we're going to improve the
algorithm. First we'll add 'sprite clipping' so parts of the
sprite can go offscreen.
[Documentation] [Video] |
||
Lesson
S31 - Sprite clipping on the Spectrum Next (Part 2/2) [ZXN] Lets take a look in more detail at
our sprite routine, this time we'll look at the double buffer,
and stack misuse.
[Documentation] [Video] |
||
Lesson
S32 - Sprite clipping on the MSX1 [MSX] We drew our 'Chibiko' mascot to
the screen before, but this time we're going to improve the
algorithm. First we'll add 'sprite clipping' so parts of the
sprite can go offscreen, we'll also use double buffering, so
there's no screen flicker.
[Documentation] [Video] |
||
Lesson
S33 - Sprite clipping on the MSX2 [MSX] We drew our 'Chibiko' mascot to
the screen before, but this time we're going to improve the
algorithm. We'll use sprite clipping, and double buffering!
[Documentation] [Video] |
||
Z80
ASM Lesson S34 - Bitmap clipping on the SMS/GG via the tilemap
[SMS] Lets add 'sprite clipping' so
parts of the sprite can go offscreen, we'll also use double
buffering, so there's no screen flicker. We'll use the Tilemap
this time, next time we'll use Hardware Sprites.
[Documentation] [Video] |
||
Lesson
S35 - Bitmap clipping on the SMS/GG via Hardware Sprites [SMS] We used the tilemap to draw our
graphic last time, this time we'll take a step up and use
hardware sprites! We'll build our 48x48 chibiko mascot out of
6x6 hardware sprites
[Documentation] [Video] |
||
Lesson
S36 - Bitmap clipping on the GB/GBC via the tilemap [GMB]
[GBC] |
||
Lesson
S37 - Bitmap clipping on the GB/GBC via Hardware sprites [GMB]
[GBC] We drew our 'Chibiko' mascot with
the tilemap... but we can do better!... This time we'll use
hardware sprites to do the job for smooth moves!
[Documentation] [Video] |
Lesson
A1
- Binary Coded Decimal [Z80] Lets
learn how to use Binary Coded decimal on the Z80... this is
where we store a number from 0-9 in each nibble of a byte, to
make it easier to show decimal numbers quickly to the screen
[Documentation] [Video] |
|||||
Lesson
A2 - Interrupt Mode 2 [Z80] [ZXS] Interrupt Mode 2 is a little odd, but its essential for custom interrupt handlers on systems which we cannot write to the low ram area &0038 such as the ZX Spectrum [Documentation] [Video] |
|||||
Lesson
A3 - Simulating functionality for the GBZ80 [Z80]
[GMB] [GBC] The Gameboy
GBZ80 has a lot of missing commands compared to the regular
Z80 - but with some tricks we can simulate them - knowing such
'workarounds' are also quite handy for regular Z80 users!
[Documentation] [Video] |
|||||
Lesson
A4 - Removing Self Modifying Code [Z80] [GMB] [GBC]
[MSX] [SMS] [SGG] Self-Modifying
code is great as it's fast, but it requires our program to run
from RAM - if we need to port to a ROM based system like the
Master System, Gameboy, GameGear or MSX this will be a
problem, but with some modification we can work around this.
[Documentation] [Video] |
Lesson
P1 - Basic Firmware Text functions [CPC] [ZXS] [MSX]
[TI8] [ENT] Lets learn how
to perform simple text operations quickly using the OS Firmware
[Documentation] [Video] |
||||||||||||
Lesson
P2 - More Text Functions, Improvements... and the Sam Coupe!
[CPC] [ZXS] [MSX] [TI8] [ENT] [SAM] |
||||||||||||
Lesson
P3 - Bitmap graphics on the Amstrad CPC and Enterprise 128
[CPC] [ENT] This tutorial
will teach you how to draw some bitmap graphics on the Amstrad
CPC and Elan Enterprise
[Documentation] [Video] |
||||||||||||
Lesson
P4 - Bitmap graphics on the ZX Spectrum and Sam Coupe
[ZXS] [SAM] Lets Learn how to draw some
bitmap graphics on the ZX Spectrum and Sam Coupe
[Documentation] [Video] |
||||||||||||
Lesson
P5 - Bitmap graphics on the TI-83 and MSX [TI8] [MSX] |
||||||||||||
Lesson
P6 - Keyreading on the Amstrad CPC, ZX Spectrum and Sam Coupe
[CPC] [ZXS] [SAM] This tutorial will teach you how
to read the keyboard of the CPC, Speccy and Sam Coupe
[Documentation] [Video] |
||||||||||||
Lesson
P7 - Keyreading on the MSX, Enterprise and TI-83
[MSX] [TI8] [ENT] |
||||||||||||
Lesson
P8
- Tilemap graphics on the Sega Master System & Game Gear
[SMS] [SGG] This tutorial will teach you how
to usine the tilemap to show images on the Sega MasterSystem and
GameGear
[Documentation] [Video] |
||||||||||||
Lesson
P9
- Tilemap graphics on the Gameboy and Gameboy Color
[SMS] [SGG] Learn about using the tilemap to
show images on the Gameboy and Gameboy Color
[Documentation] [Video] |
||||||||||||
Lesson
P10
- Tilemap graphics on the MSX1 [MSX] |
||||||||||||
Lesson
P11
- Tilemap graphics on the MSX2[MSX] |
||||||||||||
Lesson
P12
- Joypad reading on Master System,GameGear, Gameboy and Gameboy
Color [SMS] [SGG] [GMB] [GBC] Learn about how to read from the
Joystick or Joypad on the Sega Mastersystem, GameGear, Nintendo
Gameboy and Gameboy color
[Documentation] [Video] |
||||||||||||
Lesson
P13
- Palette definitions on the Amstrad CPC and CPC+ [CPC] This tutorial will teach you how
to configure the screen colors on the Amstrad CPC and CPC+ /
GX4000
[Documentation] [Video] |
||||||||||||
Lesson
P14
- Palette definitions on the Enterprise and Sam Coupe [ENT]
[SAM] |
||||||||||||
Lesson
P15
- Palette definitions on the MSX2 and V9990 [MSX] Learn about how configure the
Palette of the MSX2 and Powergraph V9990 (V9K)
[Documentation] [Video] |
||||||||||||
Lesson
P16
- Palette definitions on the Sega Master System and Game Gear
[SMS] [SGG] Learn about how configure the
Palette of the Sega Master System, and Sega Game Gear
[Documentation] [Video] |
||||||||||||
Lesson
P17
- Palette definitions on the Gameboy and Gameboy Color
[GMB] [GBC] |
||||||||||||
Lesson
P18
- Making Sound with the AY-3-8910 on the Amstrad CPC, MSX,ZX
Spectrum.... and NeoGeo + Atari ST!! [CPC] [MSX]
[ZXS] Learn about how to use the AY
sound chip to make simple sounds on a variety of Z80 systems
that use it!
[Documentation] [Video] |
||||||||||||
Lesson
P19
- Sound on the Elan Enterprise [ENT] |
||||||||||||
Lesson
P20
- Sound on the Sam Coupe [SAM] |
||||||||||||
Lesson
P21
- Sound on the Gameboy and GBC [GMB] [GBC] |
||||||||||||
Lesson
P22
- Sound with the SN76489 on the Master System, GameGear,
Megadrive (Genesis) and BBC Micro! [SMS] [SGG] |
||||||||||||
Lesson
P23
- Sound with the 'Beeper' on the ZX Spectrum and Apple II [ZXS] |
||||||||||||
Lesson
P24
- Bankswitching and hardware detection on the Amstrad CPC [CPC] Learn about how
to switch in and out the extra memory on the 6128, as well as
ROM and Cartridges on the GX4000, also detect RAM amount, and if
we're running on a CPC+
[Documentation] [Video] |
||||||||||||
Lesson
P25
- Bankswitching and hardware detection on the MSX [MSX] Learn about how
to page Memory and ROM with the slots on the MSX 1 and 2, and
detect which slots are available, and which contain RAM or ROM
[Documentation] [Video] |
||||||||||||
Lesson
P26
- Bankswitching and hardware detection on the ZX Spectrum [ZXS] Learn about how
to page in extra memory on the +2 and +3 (including Amstrad
models), and detect which model we're running on
[Documentation] [Video] |
||||||||||||
Lesson
P27
- Bankswitching and hardware detection on the Enterprise [ENT] This tutorial
will teach you how to page in Memory and ROM on the Elan
Enterprise, and detect Memory available
[Documentation] [Video] |
||||||||||||
Lesson
P28
- Bankswitching and hardware detection on the Sam Coupe [SAM] |
||||||||||||
Lesson P29 - Hardware detection and Bank Switching on the Gameboy/GBC and Sega Mastersystem/GameGear [GMB] [GBC] [SMS] [SGG] Learn about how
to page in Memory and ROM on the Gameboy, detect Color hardware,
and Page in ROM on the MasterSystem & GameGear
[Documentation] [Video] |
||||||||||||
Lesson
P30
- Hardware Sprites on the Gameboy [GMB] [GBC] |
||||||||||||
Lesson
P31
- Hardware Sprites on the Master System / Game Gear and MSX1!
[SMS] [SGG] [MSX] Learn about how
to use the Sprite hardware of the Master System, Game Gear and
MSX
[Documentation] [Video] |
||||||||||||
Lesson
P32
- Hardware Sprites on the CPC+ [CPC] |
||||||||||||
Lesson
P33
- Bitmap Graphics on the Camputers Lynx [CLX] |
||||||||||||
Lesson
P34
- Sound and Keyboard on the Camputers Lynx
[CLX] |
||||||||||||
Lesson
P35
- Playing Digital Sound with WAV on the AY-3-8910! [CPC]
[MSX] [ZXS] Learn about how
to play a WAVe file with the AY on CPC, MSX and Spectrum +2 / +3
[Documentation] [Video] |
||||||||||||
Lesson
P36
- Playing Digital Sound with WAV on the CPC+ via DMA! [CPC]
|
||||||||||||
Lesson
P37
- Playing Digital Sound with WAV on the Sam Coupe, Camputers
Lynx and ZX Spectrum [SAM] [CLX] [ZXS] Learn about how
to play a WAVe on the Sam Coupe, Camputers lynx and ZX Spectrum
48k via beeper.
[Documentation] [Video] |
||||||||||||
Lesson
P38 - Playing Digital Sound with WAV on the Sega
MasterSystem/GameGear, Elan Enterprise and GameBoy/GBC [SMS]
[SGG] [ENT] [GMB] [GBC] Learn about how
to play a WAVe on the Master System, Game Gear, Enterprise and
Gameboys
[Documentation] [Video] |
||||||||||||
Lesson
P39 - Setting the CPC screen with CRTC registers
[CPC] Learn about the
CRTC registers that control screen shape and screen page
flipping
[Documentation] [Video] |
||||||||||||
Lesson
P40 - Syncronized mode switches for 320x200 @ 16 color EGX
graphics on the Amstrad CPC [CPC] Combine Mode 1
and 2 on the Amstrad CPC for 320x200 with 16 colors (sort of)
[Documentation] [Video] |
||||||||||||
Lesson
P41 - CRTC Rupture for Interrupt based splitscreen on the CPC
[CPC] Use the CRTC
Rregisters to effect a hardware splitscreen for multiple
scrolling windows
[Documentation] [Video] |
||||||||||||
Lesson
P42 - Advanced CRTC Rupture [CPC] Learn to use
CRTC to 'clone' parts of memory, and build up a distorted screen
line by line
[Documentation] [Video] |
||||||||||||
Lesson
P43- ULANext on the Spectrum NEXT [ZXN] The Spectrum
next allows new features on the ULA, allowing the traditional
color attributes to be re-purposesd to define more new colors -
lets take a look!
[Documentation] [Video] |
||||||||||||
Lesson
P44- Enhancements to the Classic ULA and Low Res Mode
(Radasjimian) [ZXN] As well as the new palette
attribute settings we looked at last time, we can re-color the
classic ULA colors, allowing a 'nicer' color palette, while
keeping the classic spectrum screen color layout... we'll also
look at 'Low Res Mode' - which uses the classic speccy memory
range as a 128x96 @ 256 color screen.
[Documentation] [Video] |
||||||||||||
Lesson
P45 - 256 color mode on the Elan Enterprise [ENT] The basic Screen modes on the
Enterprise mimic the Amstrad CPC - but the Enterprise goes one
step further than the CPC - offering a 256 color 80x200 screen
mode... This tutorial explains how to use it.
[Documentation] [Video] |
||||||||||||
Lesson
P46- Tilemap on the Spectrum NEXT [ZXN] Lets take another look at a new
feature of the NEXT - the TileMap - like many consoles the
Speccy now has a hardware tilemap - allowing fast high color
graphics.
[Documentation] [Video] |
||||||||||||
Lesson
P47- Using 16 color Mode 0 to simulate 2x 4 color Layers
[CPC] This tutorial covers a trick used
in some games, where the 16 colors of Mode 0 are 'split' into
two , to simulate 2 planes (Background and Sprites)... we'll
even use it to do Anaglyph 3D on the Amstrad!
[Documentation] [Video] |
||||||||||||
Lesson
P48 - All MSX2 Bitmap Commands - Part 1/2 [MSX] In these Lessons we'll look at all
the V9938 commands for graphics processing with practical
examples
[Documentation] [Video] |
||||||||||||
Lesson
P49 - All MSX2 Bitmap Commands - Part 2/2 [MSX]
In these Lessons
we'll look at all the V9938 commands for graphics processing
with practical examples
[Documentation] [Video] |
||||||||||||
Lesson
P50 - Alternative Bitmap modes... HighRes, 256 color, YJK
(MSX2+) and Interlaced! [MSX] This tutorial covers some of the
rarer graphics modes of the MSX 2 and MSX 2+
[Documentation] [Video] |
||||||||||||
Lesson
P51 - Window - Tilemap Scrolling - Alt Tile Pattern addresses
and Interrupts [GMB] [GBC] Lets take a look at some advanced
Tilemap tricks on the Gameboy - This lesson teaches use of the
'window' a non-scrolling tilemap for stats onscreen, and
'splitscreen' where we change the screen on a line interrupt.
[Documentation] [Video] |
||||||||||||
Lesson
P52 - MSX1 mode G2 for 768 onscreen tiles [MSX]
This tutorial covers the use of
MSX 1 mode G2 - which allows a separate bank of 256 tiles for
each third of the screen, we can use this to have every tile
unique onscreen, and show a full screen image.
[Documentation] [Video] |
||||||||||||
Lesson
P53 - Realtime Sprite Flipping on the Amstrad CPC [CPC] In this Lesson we'll look at software sprites on the CPC - we'll learn how to effect an X-Flip in reatlime, so our sprites can look the other way without taking up more memory [Documentation] [Video] |
||||||||||||
Lesson
P54 - Transparency on Amstrad CPC software sprites [CPC] In this Lesson we'll look at
software sprites on the CPC - we'll learn how to effect an
X-Flip in reatlime, so our sprites can look the other way
without taking up more memory
[Documentation] [Video] |
||||||||||||
Lesson
P55 - LightGun Reading on the Sega Master System [SMS] The SMS Light gun is Super
precise! able to detect with near pixel perfect precision - it
really blows away the competition... this tutorial teaches how
to create an interrupt handler to detect fire presses, and gun
target.
[Documentation] [Video] |
||||||||||||
Lesson
P56 - Pixel Plotting on the Amstrad CPC [CPC] We've worked in bytes before on
the CPC screen, but this time we'll look at plotting individual
pixels of the CPC screen in Mode 1 or Mode 0
[Documentation] [Video] |
||||||||||||
Lesson
P57 - Stereoscopic 3D on the SegaMasterSystem with the Segascope
3D Glasses [SMS] This lesson covers the use of the
Stereoscopic 3D shutter-glasses of the Sega Master system - and
also covers the concept of 3D in general in terms of 2D
representiation - this lesson works with Red-Cyan anaglyph 3D
glasses
[Documentation] [Video] |
||||||||||||
Lesson
P58 - Modes 4, 3, 2 and 1 on the Sam coupe [SAM] We looked at 16 color Screen mode
4... but the SAM has a few other options... a 4 color mode (Mode
3), a Spectrum compatible mode (Mode 1), and a mode a bit like
the MSX 1 (Mode 2)... Lets put them to work!
[Documentation] [Video] |
||||||||||||
Lesson
P59 - Hardware scrolling on the MSX 1/2/2+ [MSX] The MSX has some scrolling options
- but they vary depending on the MSX revision...Lets take a look
at all the options!
[Documentation] [Video] |
||||||||||||
Lesson
P60 - Tape loading on the Amstrad CPC [CPC] The 5000 sub special demo used a
cassette file, and streamed data in a couple of formats to the
screen.
Lets take a look at the loading methods used. [Documentation] [Video] |
||||||||||||
Lesson
P61 - 2x and 4x sprite scaling with Lookup Tables on the Amstrad
CPC [CPC] Lets take a look at sprite
scaling! in this example we'll use lookup tables to effect
Double and Quad size sprites on the Amstrad CPC.
[Documentation] [Video] |
||||||||||||
Lesson
P62 - AMX Mouse reading on the Amstrad CPC [CPC] The AMX mouse is an 8 bit mouse
supporting both the Amstrad CPC and the ZX Spectrum.
[Documentation] [Video] |
||||||||||||
Lesson P63 - Kempson Mouse reading on the ZX Spectrum + SpecNEXT [ZXS] [ZXN] | ||||||||||||
Lesson
P64 - Mouse reading on the MSX [MSX]
The MSX aslo has a mouse - it
connects to the Joystick port, but is not read in the same way
as a normal joystick.
[Documentation] [Video] |
||||||||||||
|
||||||||||||
Lesson
P66 -Quadtree video on the CPC (10k special) - Part 1/2 [CPC] When my youtube channel hit 10,000
subs, I made a little demo which streamed a pre-rendered video.
Lets take a look at the video compressor I wrote!
[Documentation] [Video] |
||||||||||||
Lesson
P67 - Quadtree video on the CPC (10k special) - Part 2/2 [CPC] When my youtube channel hit 10,000
subs, I made a little demo which streamed a pre-rendered video.
Lets take a look at the CPC+ code and cartridge routines.
[Documentation] [Video] |
||||||||||||
Lesson
P68 - RLE+Bitplanes for lossless compression on the CPC [CPC] RLE compression works best with
long strings of repeated bytes, and to try to increase their
occurrence I split the image into 2 bitplanes. It's slow to
draw, but saved a lot of memory!
[Documentation] [Video] |
||||||||||||
Lesson
P69 - ChibiSound PRO on the CPC, MSX and Spectrum (128 - AY)
[CPC] [MSX] [ZXS] Lets take another look at
sound!... we'll make an improved multiplaform sound driver for
music!
[Documentation] [Video] |
||||||||||||
Lesson
P70 - Sound on the SMS/GG (ChibiSound Pro) [SMS]
[GG] 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
P71 - Sound on the Elan Enterprise! (ChibiSound Pro) [ENT] 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
P72 - Sound on the ZX Spectrum (Beeper) [ZXS] 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
P73 - Sound on the Gameboy [GMB] 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
P74 - Sound on the SAM Coupe [SAM] 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
P75 Sound on the Camputers Lynx(Beeper) [CLX] 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] |
In this series I remake the old DOS game 'Grime'. This series teaches simple tile drawing.
0. Grime Z80 - coming
soon to a computer (or console) near you! No Description Available
[Video] |
|
1. Grime Z80 - Episode 1
: Multiplatform development on 11 different systems! No Description Available
[Video] |
|
2. Grime Z80 - Episode 2
: Moving cursor, color tiles and beeps! No Description Available
[Video] |
|
3. Grime Z80 - Episode 3
: Bring on the Grime! (and bullets) No Description Available
[Video] |
|
4. Grime Z80 - Episode 4
: Now actually playable! No Description Available
[Video] |
|
5. Grime Z80 - Episode 5
: Titlescreen and gameover animations! No Description Available
[Video] |
|
6. Grime Z80 - Episode 6
: Animations and, TI tweaks, improved palette code No Description Available
[Video] |
|
7. Grime Z80 - Episode 7
: And It's done! No Description Available
[Video] |
|
8. Grime Z80 - 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 - Multiplatform code Part 1/4 YQuest is a little game I wrote
for multiple Z80 systems in my Livestreams The bulk of the code
is common to all systems, lets take a look at the code and what
it does
[Documentation][Video] |
|
Lesson
YQuest3 - Multiplatform code Part 2/4 YQuest is a little game I wrote
for multiple Z80 systems in my Livestreams The bulk of the code
is common to all systems, lets take a look at the code and what
it does
[Documentation][Video] |
|
Lesson
YQuest4 - Multi-platform code Part 3/4 The bulk of the code is common to
all systems, lets take a look at the code and what it does
[Documentation][Video] |
|
Lesson
YQuest5 - Multiplatform code Part 4/4 The bulk of the code is common to
all systems, lets take a look at the code and what it does
[Documentation][Video] |
|
Lesson
YQuest6 - Amstrad CPC Specific code [CPC] The Amstrad CPC was the first
version of the game written... lets check it out!
[Documentation][Video] |
|
Lesson
YQuest7 - Master System / GameGear Specific code [SMS] |
|
Lesson
YQuest8 - MSX1 Specific code [MSX] The MSX1 is a tile based system,
we'll define the font and graphics and tiles, then use those
tiles for drawing our game to the screen.
[Documentation][Video] |
|
Lesson
YQuest9 - MSX2 Specific code [MSX] The MSX2 is a bitmap based system,
unfortunately it's screen format will be a little tricky... lets
make it behave!
[Documentation][Video] |
|
Lesson
YQuest10 - Sam Coupe Specific code [SAM] The Sam coupe uses a bitmap screen
- with relative ease we can port to this system
[Documentation][Video] |
|
Lesson
YQuest11 - Spectrum Next Coupe Specific code [ZXN] Thanks to the Spectrum NEXT's
Layer 2 we can port our sam coupe version, and make it work on
the Spec Next…
[Documentation][Video] |
|
Lesson
YQuest12 - Porting to the Gameboy and GBZ80 [GMB]
[GBC] We're going to port Yquest to the
Gameboy - which will be tricky because the GBZ80 has no IX/IY
registers (among other limitations) We'll also make the code
compatible with the Gameboy Color... Lets figure it out!
[Documentation][Video] |
|
Lesson
YQuest13 - Adding hardware Sprites to the Master System /
GameGear [SMS] We've used the Tilemap for
graphics, but that's not so great, as it limits object movement
to an 8x8 grid... lets use Hardware Sprites instead, and get
graphics moving smoothly
[Documentation][Video] |
|
Lesson
YQuest14 - Adding hardware Sprites to the MSX1 [MSX] We used tiles before in our little
Yquest game... lets extend it with Hardware sprites for better
movement!
[Documentation][Video] |
|
Lesson
YQuest15 - Adding Hardware sprites the Gameboy and Gameboy Color
[GMB] We looked at the Gameboy before...
lets update it and add hardware sprites to the gameboy and
Gameboy Color version to add better sprite movement!
[Documentation][Video] |
In this series I make a classic 'Tron' game... this series teaches Pixel plotting and line drawing on all systems
Lets take a look at my little 'Rail shooter' - a cross between Duck Hunt and Operation wolf!
Lesson SH1
- Introduction to Suck Hunt! |
|
SuckHunt!
Lesson SH2 - Random numbers and more! |
|
SuckHunt!
Lesson SH3 - Gun Routines Suck hunt has 4 guns, each of
which has it's own ammo level. Lets take a look at the code
which handles them.
[Documentation] [Video] |
|
Suck
Hunt! Z80 based stereoscopic gamec Lesson SH4 - More Graphics
routines |
|
Z80
Suck Hunt! Sprite Clipping+More - Lesson SH5 While the screen never scrolls up
or down, it does scroll left and right, to cope with this we
need to 'clip' the sprites, removing any partially offscreen
sections. Lets learn how.
[Documentation] [Video] |
|
Lesson
SH6 - Sprites and Sounds! This time we'll look at sprites
drawing! We'll also look at the simple sound sequencer, which
plays simple sequences of tones to make tunes and sfx.
[Documentation] [Video] |
|
Lesson
SH7 - Sprite Animation When each sprite movement tick
occurs, we need to update the sprite according to it's 'rules'.
This defines each enemy as unique
[Documentation] [Video] |
|
Lesson
SH8 - (objects) Rise from your grave! When an enemy or background object
is 'dead' (offscreen)... it will respawn again at a later time.
Today we'll look at the code which resurrects the dead... and
also the gameover screen!
[Documentation] [Video] |
|
SuckHunt
SH9 - Let the games begin! (LevelInit) When a level starts, we need to
set up all the objects in the level, This uses a 'level
definition' to define the enemies, with a few other calculated
differences.
[Documentation] [Video] |
|
Lesson
SH10 - Amstrad CPC code Part 1 - Sprites and sounds! Suck Hunt has a large block of
platform specific code for each system. Lets take a look at the
most interesting parts of the code on the Amstrad CPC
[Documentation] [Video] |
|
Lesson
SH11 - Amstrad CPC code Part 2 - Amazing(?) Intro! |
|
Lesson
SH12 - Amstrad CPC code Part 3 - The Rest of the suck hunt code!
Lets finish off the CPC version of
the game - we'll look at the main loop of the game!
[Documentation] [Video] |
|
Lesson
SH13 - ZX Next code Part 1 - Sprites and sounds! Lets take a look at the most
interesting parts of the code on the Spectrum Next!
[Documentation] [Video] |
|
Suck
Hunt Programming Lesson SH14 - Spectrum Next code Part 2 -
Amazing(?) Intro! |
|
Lesson
SH15 - Spectrum Next code Part 3 - Title and Game code |
|
Lesson
SH16 - Sam Coupe code Part 1 - Sprites and banks |
|
Lesson
SH17 - Sam Coupe code Part 2 - Titles and palettes [SAM] Lets take a look at the Tilemap,
Palette and music code of the sam coupe version of the game.
[Documentation] [Video] |
|
Lesson
SH18 - Sam Coupe code Part 3 - Title and Game code [SAM] |
|
Lesson
SH19 - MSX2 code Part 1 - Sprites and banks [MSX] Suck Hunt has a large block of
platform specific code for each system. Lets take a look at the
most interesting parts of the code on the MSX2. For the MSX2
hardware, we'll have to covert the sprites into VRAM.
[Documentation] [Video] |
|
Lesson
SH20 - MSX2 code Part 2 - Tiles and palettes Lets take a look at the Tilemap,
Palette and music code of the MSX2 version of the game
[Documentation] [Video] |
|
Lesson
SH21 - MSX2 code Part 3 - Title and Game code [MSX] Lets take a look at more of the
MSX2 sourcec this time the Title screen and main game code
[Documentation] [Video] |
|
Lesson
SH22 - SMS code Part 1 - Sprites conversion and Shutter glasses
[SMS] The Sega Master system of the game
has a big advantagec it can support shutter glasses! It also
has a big disadvantagec. No bitmap display!... We'll have to
convert the sprites to tiles, and use those for the graphics
[Documentation] [Video] |
|
Lesson
SH23 - SMS code Part 2 - Tiles and palettes [SMS] Lets take a look at the Tilemap
(used by the title and gameover), Palette and 3D Switching code
of the SMS version of the game
[Documentation] [Video] |
|
Lesson
SH24 - SMS code Part 3 - Main game loop and Title [SMS] |
Lesson
M1 - Z80 Monitor/Debugger [Z80] Lets build a
simple Monitor Debugger to allow us to see the contents of the
registers and memory without relying on a debugger built into
our assembler
[Documentation] [Video] |
|
Lesson
M2 - String Reading and Memory Dumping! [Z80] |
|
Lesson M3 - String
Matching for command reading [Z80] We've learned
how to read in a string, lets compare the string with a list
of commands
[Documentation] [Video] |
|
Lesson
M4 - A Basic Text Adventure [Z80] We've written
a string reader, and a compare function - now we'll use them
to make a simple text adventure
[Documentation] [Video] |
|
Lesson
M5 - Arkosplayer for Music and SFX! [Z80] ArkosTracker
and Player are fantastic AY playing tools that are free - lets
learn how to use them to play some music and sounds!
[Documentation] [Video] |
|
Lesson
M6 - Advanced Interrupt handler template [Z80] We've looked
at interrupts before, but our previous handler could not work
with 'Stack misuse'.. if we're super careful we can write an
interrupt handler which can work even when we're 'misusing'
the stack as a fast reader/writer
[Documentation] [Video] |
|
Lesson
M7 - Multiplaform Font and Bitmap Conversion [Z80] We've used
fonts before, but this time lets write a simple font routine
that uses the same 1bpp font on all our systems.
[Documentation] [Video] |
|
Lesson
M8 - Keyboard processing and redefinable game control input
[Z80] Lets take a
look at input processing, we'll learn how we can allow the
user to redefine the controls they want to use to play our
game.
[Documentation] [Video] |
|
Lesson
M9 - Making a PONG - Part 1 At the request
of one of my Patreons, we're going to look at a super simple
game
[Documentation] [Video] |
|
Lesson
M10 - Making a PONG - Part 2 Lets continue
with the pong - we need a ball, a CPU player, and some
collision detection and the like... Let's finish the job!!
[Documentation] [Video] |
|
Lesson
M11 - Simple RLE |
|
Lesson
M12 - Stack Tricks! We've looked
at the stack before and discussed some tricks we can do with
it... Lets look in more detail, and learn how we can
manipulate the stack for parameter passing, allocating
temporary ram and more!
[Documentation] [Video] |
|
Lesson
M13 - Fast Multiplication and Division. We've looked
at some very simple Multiplication and Division before, which
just repeatedly added or subtracted a value... that's one
solution, but it's pretty slow. Lets look at some better ways
to do things!
[Documentation] [Video] |
|
Lesson
M14 - SpeedTile software Tilemap Engine (1/3) - (Basic
Tilemap) It's time to
start a new series... We're going to look at a multiplatform
software Tile/Sprite Engine
[Documentation] [Video] |
|
Lesson
M15 - SpeedTile software Tilemap Engine (2/3) - (SuperTile
map) We've looked
at some very simple Multiplication and Division before, which
just repeatedly added or subtracted a value... that's one
solution, but it's pretty slow. Lets look at some better ways
to do things!
[Documentation] [Video] |
|
Lesson
M16 - SpeedTile software Tilemap Engine (3/3) - (Software
Sprites & Sprite Clipping) We've looked
at some very simple Multiplication and Division before, which
just repeatedly added or subtracted a value... that's one
solution, but it's pretty slow. Lets look at some better ways
to do things!
[Documentation] [Video] |