Hacker News new | past | comments | ask | show | jobs | submit login
DeluxePaint/DPaint original Amiga source code (1986) (github.com)
38 points by Hates_ 3 months ago | hide | past | web | favorite | 4 comments

Doesn't seem to want to build against NDK 3.9 with gcc 4.7, but it was fun to try.

If you want to try (and I would recommend trying, since even this early version of the program is an amazing design, with much to learn from), please be aware of the following:

1) The source code is incomplete; you will need the original EA IFF 1986 (March) files to fill in the gaps. You will also need to find a replacement for the LFMULT() function.

2) The paths to the header files will need editing.

3) The original program was built using the Lattice 'C' compiler, and it uses a couple of library functions which are specific to that compiler, such as stscmp(), stcu_d(), setmem() and movmem() for which you will need to provide replacements.

4) You may want to replace the BootIT() function with a stub, which originally seems to have been part of the disk copy protection scheme.

This should get you started. Once you get the program running, watch out how you use it:

As was common in these days, string buffers are rather short (e.g. 20 characters for a file or drawer name, 30 characters for font names) and the code is oblivious to this limitation, easily leading to buffer overflows and crashes.

Also, the hardware acceleration which Deluxe Paint uses is not properly secured by calling OwnBlit()/WaitBlit()/DisownBlit() in the proper sequence at all times (some are correct, some are not, and the code shows that the developers struggled with mitigating the ugly side-effects of not getting it right). This will cause the image processing functions to glitch and corrupt memory. Apparently, this happened only rarely in 1986 because the Amiga system was "slow enough" so that writing to the Blitter registers while it was still running didn't always lead to things going awry.


as per https://www.computerhistory.org/atchm/electronic-arts-deluxe...

> and does not give you the right to license it to third parties by posting copies elsewhere on the web.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact