This commit is contained in:
alpine9000
2016-03-09 20:30:12 +11:00
14 changed files with 96 additions and 49 deletions
+5
View File
@@ -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)
* <a href="http://alpine9000.github.io/ScriptedAmigaEmulator/#amiga_examples/test.adf" target="_blank">Run in SAE</a>
+8 -4
View File
@@ -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)
* <a href="http://alpine9000.github.io/ScriptedAmigaEmulator/#amiga_examples/image.adf" target="_blank">Run in SAE</a>
+7 -4
View File
@@ -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)
try it
------
* [Download disk image](bin/music.adf?raw=true)
* <a href="http://alpine9000.github.io/ScriptedAmigaEmulator/#amiga_examples/music.adf" target="_blank">Run in SAE</a>
+8 -5
View File
@@ -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)
try it
------
* [Download disk image](bin/copper_bars.adf?raw=true)
* <a href="http://alpine9000.github.io/ScriptedAmigaEmulator/#amiga_examples/copper_bars.adf" target="_blank">Run in SAE</a>
+8 -5
View File
@@ -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)
* <a href="http://alpine9000.github.io/ScriptedAmigaEmulator/#amiga_examples/copper_vert.adf" target="_blank">Run in SAE</a>
+8 -4
View File
@@ -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)
* <a href="http://alpine9000.github.io/ScriptedAmigaEmulator/#amiga_examples/blit.adf" target="_blank">Run in SAE</a>
+8 -4
View File
@@ -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)
* <a href="http://alpine9000.github.io/ScriptedAmigaEmulator/#amiga_examples/mask_blit.adf" target="_blank">Run in SAE</a>
+6 -5
View File
@@ -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)
* <a href="http://alpine9000.github.io/ScriptedAmigaEmulator/#amiga_examples/shift_blit.adf" target="_blank">Run in SAE</a>
+7 -4
View File
@@ -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)
* <a href="http://alpine9000.github.io/ScriptedAmigaEmulator/#amiga_examples/anim_blit.adf" target="_blank">Run in SAE</a>
+4 -1
View File
@@ -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)
* <a href="http://alpine9000.github.io/ScriptedAmigaEmulator/#amiga_examples/blit_speed.adf" target="_blank">Run in SAE</a>
+6 -4
View File
@@ -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)
* <a href="http://alpine9000.github.io/ScriptedAmigaEmulator/#amiga_examples/ehb_mode.adf" target="_blank">Run in SAE</a>
+5 -2
View File
@@ -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)
* <a href="http://alpine9000.github.io/ScriptedAmigaEmulator/#amiga_examples/ham_mode.adf" target="_blank">Run in SAE</a>
+10 -7
View File
@@ -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)
* <a href="http://alpine9000.github.io/ScriptedAmigaEmulator/#amiga_examples/dithered_ham.adf" target="_blank">Run in SAE</a>
+6
View File
@@ -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
-----------------------------