I booked my tickets to Assembly a few days ago, and like most years, this got me thinking about doing a compo-filler. Chances are vanishingly small that I'll get to it, but I do want to mess about with something different as a hobby project, so I thought I'd fire up VSCode and Bartman's Amiga Debug extension.
I’m a big fan of Revision’s 16:9 format for Amiga demos. I'd love to make a game in that aspect ratio, which I know is sacrilege to people that use their Amigas on actual CRTs, but for the rest of the world (especially now the Amiga Mini is out) I think it makes perfect sense. Besides, think of the extra raster time!
Bart’s extension comes with a customised WinUAE that has a default config file at
%userprofile%/.vscode/extensions/bartmanabyss.amiga-debug-1.3.6/bin
It’s easy enough to edit this file so WinUAE always opens in a 16:9 window. There’s also a little trick (which I blogged about before) using a null-filter to scale the emulator’s output to fill the window. The results are great.
Here’re the extra bits you need for the UAE config file:
gfx_width=1920 gfx_height=1080 gfx_width_windowed=1920 gfx_height_windowed=1080 gfx_center_horizontal=smart gfx_center_vertical=smart gfx_filter_autoscale=scale
Revision recommend using the following settings:
DIWSTRT,$5281; DIWSTOP,$06c1
Which is a couple of lines change to the display port setup in the copper list.
The extension uses a customised version of GCC, so it’s possible to use C11 if you fix a couple of compiler warnings n:
/support/gcc8_c_support.h
Each of the inline asm macros should be:
__asm__
The four at the bottom are missing the underscores.
I looked into this as I was interested in messing about with C11’s generic functions and initialiser stuff, but there’s no real need when programming the Amiga, especially without the standard libraries.
I spent a few hours pulling apart the example demo and re-building it, ground-up, into a base project that I can fork for my own stuff. Everything’s split into files and programmed in my style, which is a bit more C++’y these days. It means I can read it without thinking, and it got my head back into the Amiga includes, which ended up being a fun diversion.
I think the next thing to do is sort out the copperlists, and get some stuff moving about.