Amiga Development Environments

Getting started can be intimidating. What do I need? This is a brief overview of what to get to code for any Amiga.

An Amiga

I recommend to at least at some point aquire the physical target platform you're coding for, regardless of whether it's an A500 or an A4000 with 68060 accelerator. You just won't be able to trust your cycle tricks or caching schemes for a final demo release otherwise.
That said, WinUAE does emulate A500 almost perfectly down to exact cycle timing, and you can get a pretty good idea for what the other models can do by using it. You can also bind a key to warp mode (or JIT) for a shocking speed boost when assembling or compressing!
I would go so far as to say, even if you have a real Amiga, you should get WinUAE - just to have a simple harddisk directory in which to install and try out development software and tools. It's just faster to try things out and get a good setup this way, and then transfer it to a CF card or harddisk in an Amiga.

An Assembler

The assembler software is the tool of your trade, so you'd better get one that does the job! My best advice is to just try some out and pick the one you like.
I like Asm-One a lot, because I think a good debugger is a minimum requirement for a development IDE. Not because you write bugs a lot, but because when you find one, you really need a proper tool instead of wasting time guessing and saving register contents etc.
Here are some famous Amiga assemblers:
  • Asm-One 1.49
  • Asm-Pro 1.17
  • Devpac 2
  • Phxass
  • Vasm

You can also use Windows ports of assemblers like Vasm and setup a devchain which ultimately starts WinUAE with an .exe as argument. WinUAE would be set up to load a certain configuration. WinUAE has a debugger, I'm unsure if it has breakpoints, disassembly, live code changes etc. You can view and change memory, view live copperlists, and view custom register contents, which is an advantage over native monitors. This is quite a bit more cumbersome than using an Amiga assembler. (This should be a correct description but untested by me.)

An Editor

Phxass and Vasm are command-line assemblers, but the others have a built-in text editor. Asm-One and Asm-Pro are neat all-in-one solutions and have great editors I think, but you may want your favorite Amiga or Windows editor that you can use with an Amiga command-line assembler or a Windows command-line assembler. It's important that you feel comfortable and efficient writing code, otherwise it won't be as fun :)
On Amiga, there are a few text editors, mentioned in this thread. On Windows, Notepad++ has a syntax color coding plugin. Again, you should use the one you like, and of course any text editor can edit a text file to pass to a command-line assembler.
If you're emulating native graphics modes and find 32 lines of text vertically limiting, know that WinUAE supports interlace, productivity, and RTG modes. Some of these modes can be used in Asm-One and Asm-Pro and in some Amiga text editors directly, to overcome this limit.

Tools

Music

There's now a pretty darn exact clone of Protracker 2.3D for Windows! It will save correct Protracker modules for use in Amiga demos. There's also Milkytracker, Fasttracker, etc. Demos for AGA+accelerator platforms usually play streaming music, which you can convert using sox or a wave editor on a PC.

Graphics

You can always draw and convert in WinUAE with a bunch of programs like Deluxe Paint and gfxcon, but there are a few alternatives that you can try on Windows/Mac: Grafx2, Pro-motion, and an IFF plugin for Photoshop.
After conversion, the graphics may need some touching up on Amiga to avoid the "grainy GIF" look. Hand-drawn graphics are appreciated for their human touch and artful expression, but where appropriate, converted graphics are a sensible choice.

Compression

For compression of the final release, there are lots of choices! There are two categories, object file crunchers and binary crunchers. Only object file crunchers will take an .exe and output another .exe, binary crunchers will take a binary and output a general-purpose binary that can be loaded and decompressed as data - or as code, if put at an absolute address (or any address if made location independent beforehand).
Ever since the 1980s, many coders have liked Titanics-cruncher for loading and decompressing object files in a piecemeal fashion. It will take much longer to load the demo, but it's a very direct solution and will load the .exe with a minimum of decrunch memory usage overhead.
Recently, a fast gzip decompression source was posted that allows you to use a gzip commandline tool on a PC to compress very efficiently, and after strip the gzip headers, you can decompress the binary file at about twice the speed of older crunchers.
If you want the maximum decompression speed, there's The Nibbler, which is an Amiga compressor with competitive compression ratios that decompresses the binary more than 3 times faster than the gzip routine.

WinUAE Configuration Notes

Follow the guide Get Started with WinUAE, and you will be ready to try out all the assemblers, editors, and tools you want.

Further reading

When you have the perfect setup, if you feel you need a "refresher" you can: