pouët.net

Go to bottom

4K-MOD by Oxygene [web] & Alcatraz [web]

      ,---.  .--.   .--.           ,---.    ,---.    ,-----.     ______     
     /,--.|  |  | _/  /            |    \  /    |  .'  .-,  '.  |    _ `''. 
    //_  ||  | (`' ) /             |  ,  \/  ,  | / ,-.|  \ _ \ | _ | ) _  \
   /_( )_||  |(_ ()_)        _ _   |  |\_   /|  |;  \  '_ /  | :|( ''_'  ) |
  /(_ o _)|  | (_,_)   __   ( ' )  |  _( )_/ |  ||  _`,/ \ _/  || . (_) `. |
 / /(_,_)||_ |  |\ \  |  | (_{;}_) | (_ o _) |  |: (  '\_/ \   ;|(_    ._) '
/  `-----' |||  | \ `'   /  (_,_)  |  (_,_)  |  | \ `"/  \  ) / |  (_.\.' / 
`-------|||-'|  |  \    /          |  |      |  |  '. \_/``".'  |       .'  
        '-'  `--'   `'-'           '--'      '--'    '-----'    '-----'`    

                        4K-MOD by Oxygene & Alcatraz

                 A 4KiB 2 minutes Amiga MOD played on Atari
                       Released at Silly Venture 2021
                             (party version)

Code:
    Leonard / Oxygene

Music:
    Virgill / Alcatraz  

AkLang Synth:
    Virgill / Alcatraz
    
AkLang 68k output
    Dan / Lemon.
    
Shrinkler packer
    Blueberry/Loonies
    
This 4KiB demo runs on Atari STE or MegaSTE with at least 512KiB of RAM.

This tiny 4KiB executable contains:
- A fantastic 185KiB 2 minutes .MOD song
- A software synth producing .MOD samples
- A MOD music driver replayer
- A PAULA Amiga sound chip emulator running at 25Khz
- A stereo oscilloscope
- 2 progress bars :)


Technical details:
------------------
When you want to play an Amiga .MOD music on an Atari in a 4KiB demo,
you're facing four problems:

1) The MOD file used here contains 173KiB of 8bits digitized sample sound.
This demo is using AmigaKLang, a famous Amiga software synth written by
Virgill/Alcatraz. Originally made for 64KiB demos (synth output code is C),
Dan/Lemon. wrote an asm output so now all soft synth code size is reduced and
also runs faster. This demo is producing 173KiB of 8bits samples at the
beginning during progress bar.
AmigaKLang: (https://www.pouet.net/prod.php?which=85351)

2) A MOD file is also made of a music score (notes & effects) and requires a
complex music driver (ie Amiga protracker). Protracker replay code itself is
6KiB of unpacked code, and this demo music score is 12KiB. To bypass these
limitations I used my own Amiga "Light Speed Player" technology. LSP was
originally done for speed, for some Amiga "cycle optimized" demo effects.
LSP is "kinda" Atari YM music format for the Amiga. The music driver is really
tiny (less than 500 unpacked bytes) and the new "-micro" mode made the music
score highly compressible. ( Light Speed Player music packed score is about
1KiB )
Light Speed Player: (https://github.com/arnaud-carre/LSPlayer)
       
3) LSP music driver directly outputs Amiga PAULA sound chip registers data.
So you need a PAULA chip emulator, running on Atari STE to make everything
run properly. The complete & accurate (perfect sample loop) PAULA emulator
used in this demo is 440 packed bytes only! (basically a tiny version of my
PAULA emulator released in "Amiga Demo 2" Atari demo in 2008)
(https://www.pouet.net/prod.php?which=52336)

4) And last but not least, any 4KiB demo around the world wouldn't be possible
without using packer. This intro is packed using amazing Shrinkler technology,
written by Blueberry/Loonies. Shrinkler is the most suitable packer for 4KiB
as arithmetic entropy coding allows really good packing ratio and keep
decompressor code small. (depacker is 160 bytes only!) You can use this great
Amiga packer on your fave platform now using STrinkler, my Atari port :)
STrinkler: (https://github.com/arnaud-carre/STrinkler)

Fun facts:
  - This txt readme you're reading is exactly the same size as this
    demo executable :)
  - This demo is kinda "bringing best Amiga tech to Atari" ( AmigaKLang,
    Light Speed Player, Shrinkler :) )
  - This demo uses a new "-micro" mode of Light Speed Player (soon to be
    released)

Follow me on twitter: @leonard_coder

Enjoy!
Leonard / Oxygene, Nov 2021
Go to top