lucasw / amiga_assembly

Amiga assembly projects for use with Vasm
2 stars 0 forks source link

blitter objects #15

Open lucasw opened 6 years ago

lucasw commented 6 years ago

First test could be to blit the explosion to the screen- onto the mountains layer?

Don't worry about erasing it later, just leave the remnants there.

lucasw commented 6 years ago

http://coppershade.org/articles/AMIGA/Agnus/Programming_the_Blitter/

lucasw commented 6 years ago

The example above is enabling all the input channels but not giving them valid addresses, which glitches out?

But when run in the copper it does nothing - maybe the copper getting an exception (or equivalent) is handled differently, obviously it doesn't mess up the whole computer.

Simplify the attempted blit down to drawing a solid color rectangle as in the https://www.youtube.com/watch?v=6LQ5xGnG6Fk example

lucasw commented 6 years ago

amiga_examples

Look at this https://github.com/alpine9000/amiga_examples/tree/master/006.simple_blit

Make a simple example copying that, stop trying to retrofit the current project.

Make doesn't work there because of confusion between and "png.h" which is a local file, renaming fixes that.

After that there is a need for libimagequant.h.

sudo apt install pngquant

No that doesn't get the headers installed.

git clone https://github.com/ImageOptim/libimagequant
cd libimagequant/
ls
./configure --prefix=$HOME/other/install
make
make install
cd ..

But it installs libimagequant.h in a directory that is unexpected to the amiga_examples makefile.

Forked own version https://github.com/lucasw/amiga_examples

It depends on image magick 6 and early, magic/api.h doesn't exist now and also no GraphicsMagick-config.

http://www.imagemagick.org/script/porting.php doesn't help much.

$ apt-file search GraphicsMagick-config
libgraphicsmagick1-dev: /usr/bin/GraphicsMagick-confi

Installing libgraphicsmagick1-dev wants to remove:

libexif-dev:i386 libgphoto2-dev:i386

There are non i386 versions of those so go ahead with install.

lz.c: In function ‘read_input’:
lz.c:63:25: error: ‘FILE {aka struct _IO_FILE}’ has no member named ‘_file’
 # define _fileno(p) ((p)->_file)
                         ^
lz.c:328:9: note: in expansion of macro ‘_fileno’
   fstat(_fileno(file), &stat)

_fileno -> fileno

custom.i

Where does that come from?

https://github.com/kusma/amiga-dev/blob/master/targets/m68k-amigaos/ndk/include_i/hardware/custom.i

https://github.com/AxisOxy/Planet-Rocklobster/tree/master/tools/p61con/asm/hardware

Next need to install vlink

http://sun.hasenbraten.de/vlink/

Using vlink0_16a.tar.gz

cp: cannot create regular file '/home/lucasw/Projects/amiga/debugger.syms': No such file or directory

Need to create a dir to store the output.

fatal error 13: could not open <lvo/exec_lib.i> for input

amiga-dev stores that in targets/m68k-amigaos/ndk/include_i/exec/exec_lib.i. But it isn't the same, https://github.com/deplinenoise/amiga-sdk has an lvo/exec_lib.i and a exec/exec_lib.i.

So use amiga-sdk instead.

make LIBPATH=-L$HOME/other/install/lib AMIGA_INC=-I$HOME/other/retro/amiga/github/amiga-sdk/sdkinclude PROJ_DIR=$HOME/own/retro/amiga/amiga_examples_project
vasmm68k_mot -Fhunk -quiet -esc   image.s -o out/main.o -I/home/lucasw/other/retro/amiga/github/amiga-sdk/sdkinclude
vlink -Ttext 0x70000  -brawbin1 out/main.o  -o out/main.bin
/bin/sh: 1: arithmetic expression: expecting EOF: "16#"
../shared/base.mk:139: recipe for target 'out/main.bin' failed

There is a RAM_USAGE echo that needs to be changed, disabling for now.

make -C 006.simple_blit
make[1]: Entering directory '/home/lucasw/own/retro/amiga/amiga_examples/006.simple_blit'
../tools/imagecon/out/imagecon --input ../assets/quake.png --output out/image --output-bitplanes --output-palette-asm --use-palette out/shared-palette.pal
Makefile:17: recipe for target 'out/image-palette.s' failed
make[1]: *** [out/image-palette.s] Segmentation fault (core dumped)

Would have to debug imagecon, which is used probably in all the examples I'm interested in.

lucasw commented 6 years ago

The definition of the LF bits in the BLTCON0 register http://amigadev.elowar.com/read/ADCD_2.1/Hardware_Manual_guide/node011C.html