diff --git a/000.trackdisk/README.md b/000.trackdisk/README.md index cfdcd01..fdf4283 100644 --- a/000.trackdisk/README.md +++ b/000.trackdisk/README.md @@ -7,3 +7,8 @@ The bootblock code is in [../shared/bootblock.s](../shared/bootblock.s) The program has two simple copper lists and switches between them each vertical blank interrupt + +try it +------ + * [Download disk image](bin/test.adf?raw=true) + * Run in SAE diff --git a/001.simple_image/README.md b/001.simple_image/README.md index 4878e84..59dc848 100644 --- a/001.simple_image/README.md +++ b/001.simple_image/README.md @@ -1,4 +1,4 @@ -Display a simple image +display a simple image ====================== Building on [trackdisk.device](../000.trackdisk), we now display a simple color image. @@ -9,8 +9,12 @@ The image data is prepared using a new tool I wrote called [imagecon](../tools/i The original version of this example used [vilcans amiga-startup](https://github.com/vilcans/amiga-startup) as a starting point, however almost all of that code has been replaced as my understanding expanded. -[Download disk image](bin/image.adf?raw=true) - -Screenshot: +screenshot +---------- ![Screenshot](screenshot.png?raw=true) + +try it +------ + * [Download disk image](bin/image.adf?raw=true) + * Run in SAE diff --git a/003.music/README.md b/003.music/README.md index 531850f..963a413 100644 --- a/003.music/README.md +++ b/003.music/README.md @@ -9,8 +9,11 @@ We use the P6112 Player. See P6112-Options.i for configuration details for the P * Tutorial source here: http://coppershade.org/asmskool/ * Source here: http://coppershade.org/asmskool/P6112/ -[Download disk image](bin/music.adf?raw=true) +screenshot +---------- +![Screenshot](screenshot.png?raw=true) -Screenshot: - -![Screenshot](screenshot.png?raw=true) \ No newline at end of file +try it +------ + * [Download disk image](bin/music.adf?raw=true) + * Run in SAE diff --git a/004.copper_bars/README.md b/004.copper_bars/README.md index a1f3763..747cb21 100644 --- a/004.copper_bars/README.md +++ b/004.copper_bars/README.md @@ -1,4 +1,4 @@ -Copper bars +copper bars =========== Now I discover how vertical copper waiting works. @@ -13,8 +13,11 @@ At copper line 255 ($FF), we run out of bits in the copper wait instruction, so Also in this example I have remove interrupt processing and disabled most of the interrupts. -[Download disk image](bin/copper_bars.adf?raw=true) +screenshot +---------- +![Screenshot](screenshot.png?raw=true) -Screenshot: - -![Screenshot](screenshot.png?raw=true) \ No newline at end of file +try it +------ + * [Download disk image](bin/copper_bars.adf?raw=true) + * Run in SAE diff --git a/005.copper_vert/README.md b/005.copper_vert/README.md index 8ae1da0..4f37bea 100644 --- a/005.copper_vert/README.md +++ b/005.copper_vert/README.md @@ -1,8 +1,11 @@ -Vertical copper bars +vertical copper bars ==================== -[Download disk image](bin/copper_vert.adf?raw=true) - -Screenshot: - +screenshot +---------- ![Screenshot](screenshot.png?raw=true) + +try it +------ + * [Download disk image](bin/copper_vert.adf?raw=true) + * Run in SAE diff --git a/006.simple_blit/README.md b/006.simple_blit/README.md index e15d5d5..6816cc1 100644 --- a/006.simple_blit/README.md +++ b/006.simple_blit/README.md @@ -13,8 +13,12 @@ This means a sprite and background can share the single palette. We then blit the sprite to the background. -[Download disk image](bin/blit.adf?raw=true) - -Screenshot: - +screenshot +---------- ![Screenshot](screenshot.png?raw=true) + +try it +------ + * [Download disk image](bin/blit.adf?raw=true) + * Run in SAE + diff --git a/007.masked_blit/README.md b/007.masked_blit/README.md index a04aecb..22d5436 100644 --- a/007.masked_blit/README.md +++ b/007.masked_blit/README.md @@ -47,8 +47,12 @@ This is then ready to be used in the LF1-7 bits of the [BLTCON0](http://amigadev We then blit the sprite to the background and notice it now has a shape! -[Download disk image](bin/mask_blit.adf?raw=true) - -Screenshot: - +screenshot +---------- ![Screenshot](screenshot.png?raw=true) + +try it +------ + * [Download disk image](bin/mask_blit.adf?raw=true) + * Run in SAE + diff --git a/008.shift_blit/README.md b/008.shift_blit/README.md index 94f986c..a639352 100644 --- a/008.shift_blit/README.md +++ b/008.shift_blit/README.md @@ -14,11 +14,12 @@ So the algorithm for drawing to non word aligned boundaries is as follows: [Download disk image](bin/shift_blit.adf?raw=true) -Screenshot: - +screenshot +---------- ![Screenshot](screenshot.png?raw=true) -Masked blit screenshot for reference: - -![Screenshot](../007.masked_blit/screenshot.png?raw=true) +try it +------ + * [Download disk image](bin/shift_blit.adf?raw=true) + * Run in SAE diff --git a/009.anim_blit/README.md b/009.anim_blit/README.md index 73f5a34..41d9162 100644 --- a/009.anim_blit/README.md +++ b/009.anim_blit/README.md @@ -13,8 +13,11 @@ The main loop moves the object around the screen. We don't yet clear the background before each blit, so we get a nice trail. Also there is no double buffering. -[Download disk image](bin/anim_blit.adf?raw=true) - -Screenshot: - +screenshot +---------- ![Screenshot](screenshot.png?raw=true) + +try it +------ + * [Download disk image](bin/anim_blit.adf?raw=true) + * Run in SAE diff --git a/010.blit_speed/README.md b/010.blit_speed/README.md index 2fba921..7f81b52 100644 --- a/010.blit_speed/README.md +++ b/010.blit_speed/README.md @@ -55,6 +55,9 @@ At 5 bitplanes we have enough time to do 5 blits. Lots of time left over with 1 bitplane :-D -[Download disk image](bin/blit_speed.adf?raw=true) +try it +------ + * [Download disk image](bin/blit_speed.adf?raw=true) + * Run in SAE diff --git a/011.ehb_mode/README.md b/011.ehb_mode/README.md index 38fc405..441a090 100644 --- a/011.ehb_mode/README.md +++ b/011.ehb_mode/README.md @@ -1,4 +1,4 @@ -Extra half brite mode +extra half brite mode ===================== [Extra half brite mode](http://amigadev.elowar.com/read/ADCD_2.1/Hardware_Manual_guide/node0098.html) allows us to use 32 colors as well as 32 "half brite" versions of those colors. @@ -17,10 +17,12 @@ We can see from the output that it's not earth shatteringly different. --------- ![5 bitplanes](screenshots/32-colors.png?raw=true) -The differences +the differences --------------- ![image differences](screenshots/diff.png?raw=true) -[Download disk image](bin/ehb_mode.adf?raw=true) - +try it +------ + * [Download disk image](bin/ehb_mode.adf?raw=true) + * Run in SAE diff --git a/012.ham_mode/README.md b/012.ham_mode/README.md index 8bc7979..c88d149 100644 --- a/012.ham_mode/README.md +++ b/012.ham_mode/README.md @@ -1,4 +1,4 @@ -Hold and Modify Mode +hold and modify mode ==================== I added basic supprt to [imagecon](../tools/imagecon) to output HAM mode data. The algorithm used is pretty simple so the quality of the HAM display could definately be improved. @@ -17,6 +17,9 @@ The differences --------------- ![image differences](screenshots/diff.png?raw=true) -[Download disk image](bin/ham_mode.adf?raw=true) +try it +------ + * [Download disk image](bin/ham_mode.adf?raw=true) + * Run in SAE diff --git a/013.dithered_ham/README.md b/013.dithered_ham/README.md index 950125c..f2c0d67 100644 --- a/013.dithered_ham/README.md +++ b/013.dithered_ham/README.md @@ -1,16 +1,19 @@ -Ditherered HAM +ditherered ham ============== -Work in progress +More changes to [imagecon](../tools/imagecon). This time I added simple [Floyd-Steinberg dithering](https://en.wikipedia.org/wiki/Floyd%E2%80%93Steinberg_dithering). You can see that while this improves the image, there are some problems somewhere in imagecon that increase the color intensity compared to the original source image. -Dithered +I also added a very slow and hackish brute force palette computation that tries the find good HAM palette. + +dithered -------- ![dithered](screenshots/dithered.png?raw=true) -No dither +no dither --------- ![dithered](screenshots/ham.png?raw=true) -[Download disk image](bin/dithered_ham.adf?raw=true) - - +try it +------ + * [Download disk image](bin/dithered_ham.adf?raw=true) + * Run in SAE diff --git a/README.md b/README.md index 30d4204..75bcba0 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,12 @@ Most of the sites I have used during the learning process: * [coding forum](http://ada.untergrund.net/?p=boardforums&forum=4) * [coding forum](http://eab.abime.net/forumdisplay.php?f=112) +examples +-------- +Each example tries to introduce only one new concept, often building on the previous examples. + +See each example's README.md for a limited description as well as a clickable link to run the example in your browser using my hacked version of [Scripted Amiga Emulator](http://scriptedamigaemulator.net/) + cross development environment -----------------------------