💾 Archived View for republic.circumlunar.space › users › korruptor › blog › 2022-05-30-TweakingBarts… captured on 2024-06-16 at 12:22:38. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2022-06-03)

-=-=-=-=-=-=-

👨‍💻Tweaking Bart's Amiga Extension

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.

16:9

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.

C11

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.

Base Project

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.