Haujobb Amiga Framework released

category: code [glöplog]
Happy New Year!

As mentioned in our Evoke seminar on Modern Amiga Demo Cross-Development we were planning to make our demo framework publicly available. This has finally been done!

You can now find the release with complete documentation (currently 45 pages PDF, as well as HTML) on https://github.com/leifo/haujobb-amiga.

If you ever wanted to code that Amiga AGA demo, but didn't know the platform, or where to start; or you just wanted to sneak a peek at how we do our demos in Haujobb, then this is it.

Now is the time to get going. Code and debug on PC, sync with the Rocket tracker editor, and cross-compile for Amiga. Go for it!
added on the 2019-01-01 23:00:17 by noname noname
added on the 2019-01-01 23:11:45 by psenough psenough
added on the 2019-01-02 20:54:13 by Waffemann Waffemann
BB Image
added on the 2019-01-03 12:52:58 by mueslee mueslee
BB Image
added on the 2019-01-03 14:03:18 by farfar farfar
thumbs up!
added on the 2019-01-04 13:46:35 by spike spike
Nice! Kudos for releasing.
added on the 2019-01-04 20:36:29 by raer raer
<3 Thank you!
added on the 2019-01-05 00:34:02 by argasek argasek
Cool! Now go make a demo with it :)
nice going NoName for releasing this!
added on the 2019-01-05 00:49:46 by magic magic
Just made a successful partyprod with it, but I could not get anything that needs fread() to work on the Windows / QT Creator version. I did however get adpcm to play with some software rendering effects so it's a partial success :)
added on the 2019-01-05 15:53:00 by visy visy
(on the amiga target that is)
added on the 2019-01-05 15:53:19 by visy visy
Oh nice, a first glimpse of impact :) Feel free to share it with us, if you like. Regarding fread, check the streamInit and streamRead* from demo/shared/tools/stream.c which takes care of Endianness.
added on the 2019-01-05 16:25:43 by noname noname
I was looking for an entry point to this platform for some time, and this one is straightforward to start with good installation manual. The biggest problem was to make custom music work. Finally I ended up with this ffmpeg command: ffmpeg -i input -map_metadata -1 -aflags +bitexact -acodec adpcm_ima_wav -ar 22050 out.wav
I had to check sources to realize it's still needed to cut out 'fact' or any other chunks between 'fmt ' and 'data'.
Also good to find OSC mode support for those with vampirized A600s.
Thanks for the amazing contribution!
added on the 2019-01-14 10:38:53 by zden zden
@zden: I usually use SoX to convert music to ADPCM. You can try more than 22KHz if you wanna do some AGA 060 or "Vampirized" demo. For example, I used stereo with 25335Hz on this demo.
added on the 2019-01-14 11:41:06 by ham ham
@zden: That's indeed a bit ugly. For Beam Riders e.g. we converted the track from 44.1kHz to 28.6kHz (which is the highest possible replay rate) and saved it with the default IMA ADPCM codec from Windows (not Microsoft ADPCM).
The Codec only offers 22 or 44kHz though, so we picked one of the two (the output only differs in frame size, so it doesn't really matter) and fixed the sample-rate in the wav-header with a hex-editor, so you can still play it everywhere.
If you load the resulting wav file with our adpcm code, it removes the individual frame chunks to create a continous bitstream so Kalms' adpcm player code can process it.
If FFMpeg stores more incompatible meta data, I should probably make the parser code more compatible. In many places the code is on a "it works in the way we use it" level ;)
added on the 2019-01-14 13:52:32 by hfr hfr
@zden: You are the first to hit the ceiling of the documentation, congratulations! Writing about the audio export is on the to-do list, and the combination of player and codec is still a bit fiddly. However, it is possible to save a directly usable 22khz ADPCM from within Goldwave. Thanks for the ffmpeg line; also to ham for sox. I will check both and include them with the docs on the next update.

And thanks for the kind feedback. I think we should quote you on your first sentence ;)
added on the 2019-01-14 17:27:29 by noname noname