minimod 1.2 is out now. Improvements and fixes are:
Only the sample data is loaded to chip memory now, other data will use fast memory when available.
Implemented OS friendly CIA timer interrupt setup, resulting in far improved stability, especially with Kickstart 1.x. This also fixed some of the playback glitches which likely resulted from the direct CIA poking/peeking that used to conflict with the OS itself.
@herr_irrtum Oh, heh, I would have definitely gotten tripped by that, too. I haven't been writing to ADFs in ages... must've been something like 15 years ago and back then it did work out of the box I believe.
BTW the original #amiga file system (OFS) isn't that complicated. If you really want to geek out you can figure out the format fairly easily (*1) and create a tool that writes the disk direct to ADF with the content you want (custom bootblock, s/startup-sequence and the other files you might need). It might be a fun thing to try.
Years ago I wrote a mkkickwork (*2) - a tool that writes a custom bootable kickstart (Amiga 1000) floppy with parts of the disk allocated making it possible to store other files to the disk along with the kickstart image. It at least has some useful routines that could be re-used if you want to explore this path. Feel free to reuse the code if you wish, or use it as inspiration.
I'd like to publish a mod file on a adf disc image for fun.
My search engine queries didn't bring much usable up.
I'd like it to be a self-booting adf disc image that automatically starts a minimal mod player (ideally not bigger than 50kb) running my mod.
So I need know-how in
(preparing a) bootable disc
kinda start script
mod player that runs a mod from command line
(or something that converts my mod into an executable that I can autostart)
I'm a Linux sys admin by profession, so I hope I'd understand some basic stuff on the Amiga ;) - on the other hand I have no experience with it. Kickstart 3.x and 1.3 roms and corresponding Workbenchs I have (emulated).
Any help / hints / links to tutorials would help a lot. Anything specific to the point would be a bless. Thank you!
And there we go again! Laary 3 is on. Never played this one either! From the get go it already seems a bit more polished and seems to have more of a musical score, which is nice
In 1994, our puzzle game Clockwiser was released for Amiga (OCS and AGA), CD32 console, MS-DOS and Windows 3.1.
This is the title sequence tune by our composer Ramon Braumuller, created with our own Digital Mugician Amiga music editor, published by the British Thalamus in 1990.
Couple of days ago at @h0ffman twitch stream we were watching a cool #Amiga 500 demo “Multicolor” by Unique and a question popped up whether the soundtrack was available as a mod file. I didn’t find it with the usual searches so I set up to dump it from the demo. These are the steps I ended up doing:
Download the demo archive and extract the LhA archive.
Perform recon on the binary to identify what kind of a player it is. The binary wasn’t compressed and strings were visible. #ProTracker “M.K.” identifier wasn’t found but ThePlayer 6.1 player signature “P61A” was.
Load the binary in venerable Amiga Monitor.
Search the code section for “cmp.l #’P61A’,(a0)+”, magic value (0x0c,0x98,’P61A’) found inside the P61_Init routine.
Set a breakpoint inside the P61A_Init routine.
Execute the demo to run into the breakpoint to find the start address of the module (passed in register A0).
Write the “enough” bytes from A0 to a file. How much is enough? I guestimated the mod would not be more than 256K since the demo ran on A500 with 512K chip memory.
Launch P61Con converter and convert the P61 module back to regular ProTracker one.
I did this using our own PowerPC based operating system, #MorphOS. The demo itself and the P61Con are 68k amiga apps. This works because MorphOS has a JIT to enable transparent execution of 68k code. To top things off I ran MorphOS on my MacBook Pro M3 in #Qemu. This was 2 layers of JIT emulation: Apple Silicon M3 emulating PowerPC 7448 emulating Motorola 68060.
I'm sure that these days there are modern ways to carve the mod files (including P61A ones) from executables but resorting to the old ways™ was kind of fun.
In early years the options for developing software for #Amiga in C meant using a commercial compiler: Manx Aztec C or Lattice C (later SAS/C). Most commonly the C compiler was pirated due to the aspiring devs being just bunch of kids.
Soon Matt Dillon released his freeware DICE C - liberating amiga development from having to resort to commercial software (or piracy). While DICE C wasn't bad by any measure, it wasn't open source, and I remember experiencing some issues with it and having to switch back to SAS/C. Many existing amiga C code targeted Lattice / SAS C and used its amiga specific extensions, making use of DICE bit of a pain.
Around the same time Markus Wild & co created Geek Gadgets (GG) / Amiga Developer Environment (ADE). Rather than writing a full new development tools they opted to porting BSD / #GNU ones: Their #POSIX compatibility library ixemul allowed relatively easy porting of existing tools (mostly ./configure && make - sometimes requiring some minor patches). This allowed use of GNU C compiler (gcc) and other standard GNU tools. However, gcc was way too large and heavy for basic A500 systems.
Later Volker Barthelmann's #VBCC project introduced yet another open source option.
In #MorphOS we use highly expanded ixemul library and latest GNU toolchains (I've ported all recent GCC versions and binutils 2.42).