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
@noname: I was excited how well it went from install to some production. Tried other solutions in the past, but lead nowhere so I always gave up. I didn't use your stream solution or Rocket yet, instead quickly hacked my tga loader to work on big-endian systems. Then ported a few draw routines and I could enjoy creating. With Vamp's performance, it was a lot of fun, even with fewer colors.

@ham: I tried higher kHz but seems I have to tweak replayer constants to play at correct speed. I rather won't touch it right now and experiment with the next prod. I'll check out SoX!
added on the 2019-01-22 13:04:22 by zden zden
We updated the repo with a screenmode-example that covers over a dozen screenmodes, including
BB ImageBB Image
and many others.

Meanwhile, zden released his demo Amis Cope which uses mode 24 and works on accelerated OCS machines, including Vampire.
added on the 2019-02-10 13:41:23 by noname noname
Keep on rocking NoNamE!
added on the 2019-02-10 13:46:38 by magic magic
added on the 2019-02-10 14:17:10 by numtek numtek
@Noname I'm not sure how hard it would be for you, but adding support for more modes initialized via RTG driver would be amazing. While I know so little about the system, I understood Elude demos works on my Vampy because of this support, and via HDMI. That would give me the ability to develop more than 5-bit gfx and watch it in crisp quality (while missing the charm of composite analog output :)).
added on the 2019-02-11 21:10:13 by zden zden
This is really awesome. thanks
added on the 2019-02-13 13:04:23 by JaK JaK
Great! There are too many that get lost in the boring startup phase. This puts an end to that!
added on the 2019-02-13 16:06:30 by rloaderro rloaderro
anybody wanna share a properly working pre setupped 060 UAE config with the necessary hd images etc ?
added on the 2019-02-13 18:30:35 by visy visy