kraptor game has evident problems with palette of images in VirtualBox (only) and I tought compiling it would help do some experiments to figure out what the problem is. Fun fact: the author of the game (released in 2004) have made kfixpal tool, to change a bunch of pictures, so as they share a common palette. Released in 2007: https://master.dl.sourceforge.net/project/kraptor/kfixpal/0.9.9/kfixpal.0.9.9.zip?viasf=1 Like the other says, less usefull, as the world evolve toward truecolor images. I decided to start from: https://master.dl.sourceforge.net/project/kraptor/kraptor_source_code/final_apr_03_2004/kraptor_final_apr_03_2004.tar.gz?viasf=1 rather than: http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/repositories/1.3/games/kraptor.zip I have no idea yet if it was a good/bad choice. I decided to use DOSEMU2 (that work well with Ubuntu Linux... might be less well in other Linux... in Gecko Linux I had no predefined, command.com and minimal tools). And so, I created in ~/.dosemu/drive_c two main directories: djzip were I put DJGPP Zip files, that I unzip in djpaul: paul@kasparno:~/.dosemu/drive_c$ ls DEBUG.COM djpaul djzip dumb093 gpm hello2.exe hello.exe krapto M2Sys135 mydos obnc tmp VGAPAL.EXE paul@kasparno:~/.dosemu/drive_c$ ls djzip all422ar2.zip all422br2.zip bnu2351b.zip djdev205.zip gcc1030b.zip mak43b.zip So I have unzip32 from: https://www.mirrorservice.org/sites/ftp.delorie.com/pub/djgpp/current/unzip32.exe in djpaul, and I have extracted each file in djzip from djpaul: cd djpaul unzip32 \djpaul\djdev205.zip etc. And I edited /usr/share/dosemu/commands/fdppauto.bat to have: path %DOSEMUDRV%:\dosemu;C:\DJPAUL\BIN ... SET DJGPP=C:\DJPAUL\DJGPP.ENV so that I can use make as soon I launch dosemu . kraptor game use https://iweb.dl.sourceforge.net/project/dumb/dumb/0.9.3/dumb-0.9.3.zip to play music and that is not already compiled in http://www.delorie.com/pub/djgpp/current/v2tk/allegro/ So I uncompressed it and copied it in ~/.dosemu/drive_c I note that makefile "included" Makefile.rdy (so I had to edit that last one). Compilation did not finish for dumb, but it build the .h file and .lib file that I did copy to: /home/paul/.dosemu/drive_c/djpaul/lib/ and /home/paul/.dosemu/drive_c/djpaul/include/ respectively. So after that I was ready to work on raptor itself. First I had to: fix DJGPP to edit the makefile so as it does target DJGPP. Then make build it. I got an error in guiprocs.c: int xedit_proc(int msg, DIALOG *d, int c) { int ret = D_O_K; typedef int (*func_ptr)(DIALOG*); int n = d->h-text_height(font); DIALOG edit, button; SET_DIALOG(edit, d_edit_proc, d->x+n/2, d->y+n/2, d->w-n, d->h-n, d->fg, gui_white_color, 0, d->flags, d->d1, d->d2, d->dp, NULL, NULL); SET_DIALOG(button, xbutton_proc, 0, d->y+1, d->h-2, d->h-2, d->fg, gui_back_color, 0, d->flags|D_EXIT, 0, 0, "...", NULL, NULL); if(d->dp2) { button.x = d->x + d->w - button.w - 1; edit.w -= button.w; //if(font == &_default_font) button.dp = "_"; } _default_font was undefined, so I just commented it. ;-) Also there were many errors about storage class of functions not valid... this was on imbricated functions: static void a(){ static void b(){...} ... I just removed the "static" beofre b() [imbricated functions] I get a lot of warnings about deprecated functions in Allegro. Up to now I did not care... but I thought it may be link to problem with palette... don't really knows. Finally, linking give a lot of errors looking like: ld: obj/djgpp/captura.o:captura.c:(.text+0x0): multiple definition of `install_allegro'; obj/djgpp/bomba.o:bomba.c:(.text+0x0): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x20): multiple definition of `set_window_title'; obj/djgpp/bomba.o:bomba.c:(.text+0x20): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x40): multiple definition of `desktop_color_depth'; obj/djgpp/bomba.o:bomba.c:(.text+0x40): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x60): multiple definition of `get_desktop_resolution'; obj/djgpp/bomba.o:bomba.c:(.text+0x60): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x80): multiple definition of `_default_ds'; obj/djgpp/bomba.o:bomba.c:(.text+0x80): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x90): multiple definition of `bmp_write_line'; obj/djgpp/bomba.o:bomba.c:(.text+0x90): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0xa0): multiple definition of `bmp_read_line'; obj/djgpp/bomba.o:bomba.c:(.text+0xa0): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0xb0): multiple definition of `bmp_unwrite_line'; obj/djgpp/bomba.o:bomba.c:(.text+0xb0): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0xc0): multiple definition of `is_windowed_mode'; obj/djgpp/bomba.o:bomba.c:(.text+0xc0): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0xd0): multiple definition of `clear_to_color'; obj/djgpp/bomba.o:bomba.c:(.text+0xd0): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0xf0): multiple definition of `bitmap_color_depth'; obj/djgpp/bomba.o:bomba.c:(.text+0xf0): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x100): multiple definition of `bitmap_mask_color'; obj/djgpp/bomba.o:bomba.c:(.text+0x100): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x110): multiple definition of `is_same_bitmap'; obj/djgpp/bomba.o:bomba.c:(.text+0x110): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x160): multiple definition of `is_linear_bitmap'; obj/djgpp/bomba.o:bomba.c:(.text+0x160): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x180): multiple definition of `is_planar_bitmap'; obj/djgpp/bomba.o:bomba.c:(.text+0x180): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x1a0): multiple definition of `is_memory_bitmap'; obj/djgpp/bomba.o:bomba.c:(.text+0x1a0): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x1c0): multiple definition of `is_screen_bitmap'; obj/djgpp/bomba.o:bomba.c:(.text+0x1c0): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x210): multiple definition of `is_video_bitmap'; obj/djgpp/bomba.o:bomba.c:(.text+0x210): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x220): multiple definition of `is_system_bitmap'; obj/djgpp/bomba.o:bomba.c:(.text+0x220): first defined here ... ld: obj/djgpp/captura.o:captura.c:(.text+0xa50): multiple definition of `rotate_sprite'; obj/djgpp/bomba.o:bomba.c:(.text+0xa50): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0xaa0): multiple definition of `rotate_sprite_v_flip'; obj/djgpp/bomba.o:bomba.c:(.text+0xaa0): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0xaf0): multiple definition of `rotate_scaled_sprite'; obj/djgpp/bomba.o:bomba.c:(.text+0xaf0): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0xb60): multiple definition of `rotate_scaled_sprite_v_flip'; obj/djgpp/bomba.o:bomba.c:(.text+0xb60): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0xbd0): multiple definition of `pivot_sprite'; obj/djgpp/bomba.o:bomba.c:(.text+0xbd0): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0xc20): multiple definition of `pivot_sprite_v_flip'; obj/djgpp/bomba.o:bomba.c:(.text+0xc20): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0xc70): multiple definition of `pivot_scaled_sprite'; obj/djgpp/bomba.o:bomba.c:(.text+0xc70): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0xcc0): multiple definition of `pivot_scaled_sprite_v_flip'; obj/djgpp/bomba.o:bomba.c:(.text+0xcc0): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0xd10): multiple definition of `_putpixel'; obj/djgpp/bomba.o:bomba.c:(.text+0xd10): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0xd40): multiple definition of `_getpixel'; obj/djgpp/bomba.o:bomba.c:(.text+0xd40): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0xd70): multiple definition of `_putpixel15'; obj/djgpp/bomba.o:bomba.c:(.text+0xd70): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0xda0): multiple definition of `_getpixel15'; obj/djgpp/bomba.o:bomba.c:(.text+0xda0): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0xdd0): multiple definition of `_putpixel16'; obj/djgpp/bomba.o:bomba.c:(.text+0xdd0): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0xe00): multiple definition of `_getpixel16'; obj/djgpp/bomba.o:bomba.c:(.text+0xe00): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0xe30): multiple definition of `_putpixel24'; obj/djgpp/bomba.o:bomba.c:(.text+0xe30): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0xe70): multiple definition of `_getpixel24'; obj/djgpp/bomba.o:bomba.c:(.text+0xe70): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0xea0): multiple definition of `_putpixel32'; obj/djgpp/bomba.o:bomba.c:(.text+0xea0): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0xed0): multiple definition of `_getpixel32'; obj/djgpp/bomba.o:bomba.c:(.text+0xed0): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0xf00): multiple definition of `draw_rle_sprite'; obj/djgpp/bomba.o:bomba.c:(.text+0xf00): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0xf10): multiple definition of `draw_trans_rle_sprite'; obj/djgpp/bomba.o:bomba.c:(.text+0xf10): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0xf50): multiple definition of `draw_lit_rle_sprite'; obj/djgpp/bomba.o:bomba.c:(.text+0xf50): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0xf60): multiple definition of `fixadd'; obj/djgpp/bomba.o:bomba.c:(.text+0xf60): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0xf90): multiple definition of `fixsub'; obj/djgpp/bomba.o:bomba.c:(.text+0xf90): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0xfc0): multiple definition of `fixmul'; obj/djgpp/bomba.o:bomba.c:(.text+0xfc0): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x1000): multiple definition of `fixdiv'; obj/djgpp/bomba.o:bomba.c:(.text+0x1000): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x1070): multiple definition of `fixfloor'; obj/djgpp/bomba.o:bomba.c:(.text+0x1070): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x1080): multiple definition of `fixceil'; obj/djgpp/bomba.o:bomba.c:(.text+0x1080): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x10b0): multiple definition of `ftofix'; obj/djgpp/bomba.o:bomba.c:(.text+0x10b0): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x1150): multiple definition of `fixtof'; obj/djgpp/bomba.o:bomba.c:(.text+0x1150): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x1160): multiple definition of `itofix'; obj/djgpp/bomba.o:bomba.c:(.text+0x1160): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x1170): multiple definition of `fixtoi'; obj/djgpp/bomba.o:bomba.c:(.text+0x1170): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x1190): multiple definition of `fixcos'; obj/djgpp/bomba.o:bomba.c:(.text+0x1190): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x11b0): multiple definition of `fixsin'; obj/djgpp/bomba.o:bomba.c:(.text+0x11b0): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x11d0): multiple definition of `fixtan'; obj/djgpp/bomba.o:bomba.c:(.text+0x11d0): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x11f0): multiple definition of `fixacos'; obj/djgpp/bomba.o:bomba.c:(.text+0x11f0): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x1230): multiple definition of `fixasin'; obj/djgpp/bomba.o:bomba.c:(.text+0x1230): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x1270): multiple definition of `apply_matrix'; obj/djgpp/bomba.o:bomba.c:(.text+0x1270): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x1490): multiple definition of `dot_product'; obj/djgpp/bomba.o:bomba.c:(.text+0x1490): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x1540): multiple definition of `dot_product_f'; obj/djgpp/bomba.o:bomba.c:(.text+0x1540): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x1560): multiple definition of `persp_project'; obj/djgpp/bomba.o:bomba.c:(.text+0x1560): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x16c0): multiple definition of `persp_project_f'; obj/djgpp/bomba.o:bomba.c:(.text+0x16c0): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x1700): multiple definition of `file_select'; obj/djgpp/bomba.o:bomba.c:(.text+0x1700): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x1730): multiple definition of `textout'; obj/djgpp/bomba.o:bomba.c:(.text+0x1730): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x1760): multiple definition of `textout_centre'; obj/djgpp/bomba.o:bomba.c:(.text+0x1760): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x1790): multiple definition of `textout_right'; obj/djgpp/bomba.o:bomba.c:(.text+0x1790): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x17c0): multiple definition of `textout_justify'; obj/djgpp/bomba.o:bomba.c:(.text+0x17c0): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x1800): multiple definition of `draw_character'; obj/djgpp/bomba.o:bomba.c:(.text+0x1800): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x1830): multiple definition of `gui_textout'; obj/djgpp/bomba.o:bomba.c:(.text+0x1830): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x1860): multiple definition of `set_window_close_button'; obj/djgpp/bomba.o:bomba.c:(.text+0x1860): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x1870): multiple definition of `set_window_close_hook'; obj/djgpp/bomba.o:bomba.c:(.text+0x1870): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x1880): multiple definition of `yield_timeslice'; obj/djgpp/bomba.o:bomba.c:(.text+0x1880): first defined here ld: obj/djgpp/captura.o:captura.c:(.text+0x18a0): multiple definition of `_set_color'; obj/djgpp/bomba.o:bomba.c:(.text+0x18a0): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x0): multiple definition of `install_allegro'; obj/djgpp/bomba.o:bomba.c:(.text+0x0): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x20): multiple definition of `set_window_title'; obj/djgpp/bomba.o:bomba.c:(.text+0x20): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x4a): multiple definition of `desktop_color_depth'; obj/djgpp/bomba.o:bomba.c:(.text+0x40): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x71): multiple definition of `get_desktop_resolution'; obj/djgpp/bomba.o:bomba.c:(.text+0x60): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0xa4): multiple definition of `_default_ds'; obj/djgpp/bomba.o:bomba.c:(.text+0x80): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0xb9): multiple definition of `bmp_write_line'; obj/djgpp/bomba.o:bomba.c:(.text+0x90): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0xd7): multiple definition of `bmp_read_line'; obj/djgpp/bomba.o:bomba.c:(.text+0xa0): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0xf5): multiple definition of `bmp_unwrite_line'; obj/djgpp/bomba.o:bomba.c:(.text+0xb0): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x10b): multiple definition of `is_windowed_mode'; obj/djgpp/bomba.o:bomba.c:(.text+0xc0): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x11b): multiple definition of `clear_to_color'; obj/djgpp/bomba.o:bomba.c:(.text+0xd0): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x140): multiple definition of `bitmap_color_depth'; obj/djgpp/bomba.o:bomba.c:(.text+0xf0): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x14d): multiple definition of `bitmap_mask_color'; obj/djgpp/bomba.o:bomba.c:(.text+0x100): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x15b): multiple definition of `is_same_bitmap'; obj/djgpp/bomba.o:bomba.c:(.text+0x110): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x1bd): multiple definition of `is_linear_bitmap'; obj/djgpp/bomba.o:bomba.c:(.text+0x160): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x1d7): multiple definition of `is_planar_bitmap'; obj/djgpp/bomba.o:bomba.c:(.text+0x180): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x1f1): multiple definition of `is_memory_bitmap'; obj/djgpp/bomba.o:bomba.c:(.text+0x1a0): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x20b): multiple definition of `is_screen_bitmap'; obj/djgpp/bomba.o:bomba.c:(.text+0x1c0): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x223): multiple definition of `is_video_bitmap'; obj/djgpp/bomba.o:bomba.c:(.text+0x210): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x236): multiple definition of `is_system_bitmap'; obj/djgpp/bomba.o:bomba.c:(.text+0x220): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x250): multiple definition of `is_sub_bitmap'; obj/djgpp/bomba.o:bomba.c:(.text+0x240): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x26a): multiple definition of `acquire_bitmap'; obj/djgpp/bomba.o:bomba.c:(.text+0x260): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x296): multiple definition of `release_bitmap'; obj/djgpp/bomba.o:bomba.c:(.text+0x280): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x2c2): multiple definition of `acquire_screen'; obj/djgpp/bomba.o:bomba.c:(.text+0x2a0): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x2de): multiple definition of `release_screen'; obj/djgpp/bomba.o:bomba.c:(.text+0x2d0): first defined here ... ld: obj/djgpp/cinema.o:cinema.c:(.text+0x10c7): multiple definition of `_getpixel15'; obj/djgpp/bomba.o:bomba.c:(.text+0xda0): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x112c): multiple definition of `_putpixel16'; obj/djgpp/bomba.o:bomba.c:(.text+0xdd0): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x1190): multiple definition of `_getpixel16'; obj/djgpp/bomba.o:bomba.c:(.text+0xe00): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x11f5): multiple definition of `_putpixel24'; obj/djgpp/bomba.o:bomba.c:(.text+0xe30): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x1288): multiple definition of `_getpixel24'; obj/djgpp/bomba.o:bomba.c:(.text+0xe70): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x12f2): multiple definition of `_putpixel32'; obj/djgpp/bomba.o:bomba.c:(.text+0xea0): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x1355): multiple definition of `_getpixel32'; obj/djgpp/bomba.o:bomba.c:(.text+0xed0): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x13b9): multiple definition of `draw_rle_sprite'; obj/djgpp/bomba.o:bomba.c:(.text+0xf00): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x13de): multiple definition of `draw_trans_rle_sprite'; obj/djgpp/bomba.o:bomba.c:(.text+0xf10): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x142a): multiple definition of `draw_lit_rle_sprite'; obj/djgpp/bomba.o:bomba.c:(.text+0xf50): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x1455): multiple definition of `fixadd'; obj/djgpp/bomba.o:bomba.c:(.text+0xf60): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x1485): multiple definition of `fixsub'; obj/djgpp/bomba.o:bomba.c:(.text+0xf90): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x14b5): multiple definition of `fixmul'; obj/djgpp/bomba.o:bomba.c:(.text+0xfc0): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x14fd): multiple definition of `fixdiv'; obj/djgpp/bomba.o:bomba.c:(.text+0x1000): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x1576): multiple definition of `fixfloor'; obj/djgpp/bomba.o:bomba.c:(.text+0x1070): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x158c): multiple definition of `fixceil'; obj/djgpp/bomba.o:bomba.c:(.text+0x1080): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x15bd): multiple definition of `ftofix'; obj/djgpp/bomba.o:bomba.c:(.text+0x10b0): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x165a): multiple definition of `fixtof'; obj/djgpp/bomba.o:bomba.c:(.text+0x1150): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x166a): multiple definition of `itofix'; obj/djgpp/bomba.o:bomba.c:(.text+0x1160): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x1675): multiple definition of `fixtoi'; obj/djgpp/bomba.o:bomba.c:(.text+0x1170): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x1692): multiple definition of `fixcos'; obj/djgpp/bomba.o:bomba.c:(.text+0x1190): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x16ae): multiple definition of `fixsin'; obj/djgpp/bomba.o:bomba.c:(.text+0x11b0): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x16ca): multiple definition of `fixtan'; obj/djgpp/bomba.o:bomba.c:(.text+0x11d0): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x16e6): multiple definition of `fixacos'; obj/djgpp/bomba.o:bomba.c:(.text+0x11f0): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x1721): multiple definition of `fixasin'; obj/djgpp/bomba.o:bomba.c:(.text+0x1230): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x1763): multiple definition of `apply_matrix'; obj/djgpp/bomba.o:bomba.c:(.text+0x1270): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x184c): multiple definition of `dot_product'; obj/djgpp/bomba.o:bomba.c:(.text+0x1490): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x1887): multiple definition of `dot_product_f'; obj/djgpp/bomba.o:bomba.c:(.text+0x1540): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x18a2): multiple definition of `persp_project'; obj/djgpp/bomba.o:bomba.c:(.text+0x1560): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x1904): multiple definition of `persp_project_f'; obj/djgpp/bomba.o:bomba.c:(.text+0x16c0): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x1966): multiple definition of `file_select'; obj/djgpp/bomba.o:bomba.c:(.text+0x1700): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x198d): multiple definition of `textout'; obj/djgpp/bomba.o:bomba.c:(.text+0x1730): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x19bb): multiple definition of `textout_centre'; obj/djgpp/bomba.o:bomba.c:(.text+0x1760): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x19e9): multiple definition of `textout_right'; obj/djgpp/bomba.o:bomba.c:(.text+0x1790): first defined here ld: obj/djgpp/cinema.o:cinema.c:(.text+0x1a17): multiple definition of `textout_justify'; obj/djgpp/bomba.o:bomba.c:(.text+0x17c0): first defined here ... ld: obj/djgpp/clima.o:clima.c:(.text+0x8b4): multiple definition of `ellipse'; obj/djgpp/bomba.o:bomba.c:(.text+0x7e0): first defined here ld: obj/djgpp/clima.o:clima.c:(.text+0x8e5): multiple definition of `ellipsefill'; obj/djgpp/bomba.o:bomba.c:(.text+0x800): first defined here ld: obj/djgpp/clima.o:clima.c:(.text+0x916): multiple definition of `arc'; obj/djgpp/bomba.o:bomba.c:(.text+0x820): first defined here ld: obj/djgpp/clima.o:clima.c:(.text+0x94a): multiple definition of `spline'; obj/djgpp/bomba.o:bomba.c:(.text+0x840): first defined here ld: obj/djgpp/clima.o:clima.c:(.text+0x972): multiple definition of `floodfill'; obj/djgpp/bomba.o:bomba.c:(.text+0x860): first defined here ld: obj/djgpp/clima.o:clima.c:(.text+0x99a): multiple definition of `polygon3d'; obj/djgpp/bomba.o:bomba.c:(.text+0x880): first defined here ld: obj/djgpp/clima.o:clima.c:(.text+0x9c8): multiple definition of `polygon3d_f'; obj/djgpp/bomba.o:bomba.c:(.text+0x8a0): first defined here ... still many moreBut because of it, it does not generate kraptor.exe file in bin. The cause could be that the library needs to be compiled with: -fgnu89-inlineas I found from: https://www.allegro.cc/forums/thread/617748 I wrote a message on djgpp mailing list about it and got a response that it is a known issue: https://www.delorie.com/djgpp/mail-archives/browse.cgi?p=djgpp/2021/06/21/18:17:06
_______________________________________________ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-devel