From 6a2a703e4f02c846e2422453d67b9d0508342b6c Mon Sep 17 00:00:00 2001 From: Gerasim Troeglazov <3dEyes@gmail.com> Date: Tue, 4 Sep 2018 14:27:49 +1000 Subject: [PATCH] SDLPoP: add recipe for 1.18.1 version --- .../sdlpop/additional-files/sdlpop.rdef.in | 95 +++++++++++++++++++ .../sdlpop/patches/sdlpop-1.18.1.patchset | 60 ++++++++++++ games-arcade/sdlpop/sdlpop-1.18.1.recipe | 83 ++++++++++++++++ 3 files changed, 238 insertions(+) create mode 100644 games-arcade/sdlpop/additional-files/sdlpop.rdef.in create mode 100644 games-arcade/sdlpop/patches/sdlpop-1.18.1.patchset create mode 100644 games-arcade/sdlpop/sdlpop-1.18.1.recipe diff --git a/games-arcade/sdlpop/additional-files/sdlpop.rdef.in b/games-arcade/sdlpop/additional-files/sdlpop.rdef.in new file mode 100644 index 000000000..f4a2cebb7 --- /dev/null +++ b/games-arcade/sdlpop/additional-files/sdlpop.rdef.in @@ -0,0 +1,95 @@ +resource app_flags B_MULTIPLE_LAUNCH; + +resource app_version { + major = @MAJOR@, + middle = @MIDDLE@, + minor = @MINOR@, + + variety = B_APPV_FINAL, + internal = 0, + + short_info = "SDLPoP", + long_info = "@LONG_INFO@" +}; + +resource app_signature "@APP_SIGNATURE@"; + +resource vector_icon array { + $"6E6369660A05F903CFD3D503213A92037FA39F03DDB47D03C5060C03F52A0703" + $"614D3F0500040080160209C6FCB3CAC772B4E4C7D1B443C881B611C83AB532C8" + $"AAB730C8C5B978C928B857C856BAD8C760BD93C822BC52C73FBDDCC6B2BE1EC6" + $"F9BE03C6A2BDEEC684BD8FC693BDBFC684BD8FC67EBD7DC67EBD7DC72FBC8EC7" + $"BDBA4BC76CBB64C811B94FC7F7B73EC7EDB842C80AB6020211BD13C6C5BD18C7" + $"D2BE0BC6BFBFFAC69DBF03C6B6BFFAC69DC027C699C027C699C066C745C09EC8" + $"AEC095C7F6C0AAC990C139CB3AC130CA56C162CCF9C228D065C237CEA0C1AAD0" + $"3AC0B3CFCBC11ED020C05CCF61C033CE50C052CED0C002CD3DBF9DCB1BBF96CC" + $"35BF9ECA4DBF78C8B3BF93C97FBF5EC8BDBF10C8DCBF2AC8D1BEFFC920BEDDC9" + $"A7BEEEC963BE58CC08BC65D079BD18CE27BC0DD0A5BB60D0FEBBB6D0D1BB30D0" + $"B2BAFDD002BACCD065BB43CF30BBF2CD9ABBC8CE76BC35CC5DBCB1C9E0BC59CB" + $"1ABCFAC8DE020ABBF4BB88BB96BBDBBC39BB35BD09BB36BCA7BB38BCF3BB8FBD" + $"98BB9FBD56BBA6BDE7BBD8BE6EBC68BE2FBC1DBE36BD01BD67BDFDBDC8BD7DBD" + $"36BE3BBCD9BEBBBD07BE7BBC4CBE59BB11BDCCBBB2BE0BBB8ABD44BCA2BC62BC" + $"42BD01BC0ABC84BAE5BCEDBB77BCB6BAE6BCD7BAE9BC94BAE8BCAABB3CBC3502" + $"13BEB4C230BEA5C35CBF81C2BDBF4DC4A5BF3AC3D2BF41C55FBFFAC69DBFA1C6" + $"02BF03C6B6BD13C6C5BE0BC6BFBD18C7D2BCB1C9E0BCFAC8DEBC59CB1ABBF2CD" + $"9ABC35CC5DBBC8CE76BAFDD002BB43CF30BACCD065BB60D0FEBB30D0B2BBB6D0" + $"D1BC65D079BC0DD0A5BC60D0DFBC03D190BC33D139BB72D152BA51D0D0BAD8D1" + $"24B9E6D00EBAB3CE80BA6FCF38BB2DCD84BB57CB55BB47CC69BB6BC9BBBBE5C6" + $"90BBD8C82BBD05C6A8BF4AC699BE2AC6BBBF62C68ABFADC65FBF94C66DBE23C6" + $"21BB08C5CEBC7AC684BC0C4FBE13C5EFBD12C5C8BE6FC605BF0DC5A6BEBEC5CC" + $"BF2AC478020CBF10C8DCBEFFC920BF2AC8D1BF78C8B3BF5EC8BDBF93C97FBF9D" + $"CB1BBF9ECA4DBF96CC35C033CE50C002CD3DC052CED0C0B3CFCBC05CCF61C11E" + $"D020C228D065C1AAD03AC226D08FC21FD10DC221D0E3C180D0D3C053D02EC0C0" + $"D0BCBF3DCE81BF3ACA8EBF49CC78BF32CA13BF3FC91CBF37C997BF32C943BF0A" + $"C9BABF18C992BF0AC9BABEDDC9A7BEDDC9A7BEEEC963000CBA47BC0ABA47BC0A" + $"BA7BBBEEBAE6BBB7BAB0BBD2BAE8BC00BAE9BC94BAE9BC4ABAE8BCAABAE5BCED" + $"BAE6BCD7BB77BCB6BCA2BC62BC0ABC84BC42BD01BB11BDCCBB8ABD44BBB2BE0B" + $"BCD9BEBBBC4CBE59BC5BBF77BAAABFFEBB83BFDBB97DBFACB933BD39B913BE50" + $"B933BD39B958BD51B958BD51B9B8BD91BA7ABE0FBA19BDD0BA77BD61BA47BC0A" + $"BA67BCB4BA47BC0A0203BA02BE86BA91BE85BA3DBEBEBAB4BF2FBA78BEF6BB08" + $"BEF6BBB0BE83BB5CBEBDBB21BE850203BA02BE86BA3DBEBEBA91BE85BBB0BE83" + $"BB21BE85BB5CBEBDBAB4BF2FBB08BEF6BA78BEF6020BBB00C6ACBAD3C756BB31" + $"C644BBE5C690BB95C665BBD8C82BBB57CB55BB6BC9BBBB47CC69BAB3CE80BB2D" + $"CD84BA6FCF38BA51D0D0B9E6D00EBAD8D124BC03D190BB72D152BBF0D1AFBBB4" + $"D20EBBC8D1EEBB02D1E4B996D1C1BA4DD1CAB975D16FB94CD0C1B941D11DB970" + $"CF62BA4ACCC1B9C9CE09BAD6CB77BAA1C8B2BA65CA0ABABFC8060205BF3ACA8E" + $"BEB1CB6CBF49CC78C053D02EBF3DCE81C0C0D0BCC21FD10DC180D0D3C13FD183" + $"BF38D0D6BFD7D1D9BEECCFBDBE7BCD7CBEBCCE9ABE35CC720208C571BDBCC52C" + $"BE04C5C7BDDFC677BE1FC61FBDFFC67ABDFBC684BD8FC680BDB3C693BDBFC6B2" + $"BE1EC6A2BDEEC6BDBED6C7FFBED1C771BEDDC7FEBEEFC7F9BF4BC7FABF2CC737" + $"BF4FC5D8BE9AC64CBF55C57BBEA0C4C0BEACC51DBEA7C4EFBE540205BD67BDFD" + $"BD50BEE6BD9EBDEFBE0DBDD3BDD6BDE1BE43BE0EBEAABE87BE7BBE47BEC9BEFB" + $"BEB0BFEABEB3BF74BDD3C00DBC16C03339C033BC75BF6A0208C3B6BF7DC165C0" + $"1CC449BF08C5B6BF10C4FEBEEEC5B6BF65C5B7C00FC5B7BFBAC467C055C1E4C1" + $"39C33DC115C099C1ACBDE4C1EDBF32C186BD50C214BC2EC276BCC5C25EBBBAC2" + $"68BB78C17ABB7BC1E5BBB5C10FBCA1C0ACBC31C0D6BEFFC0590204C11AD285C1" + $"CFD2E2C12FD26FC16FD22BC15AD242C271D2B0C47DD3B1C36C71C40DD3B7C32C" + $"D3AFC39BD3C7C275D3580203B943D33BB9DCD39EB9E3D326BB25D316BA84D31B" + $"BB1ED384BB0FD461BB17D3F3BA74D4000202B8E1D3DBB940D436B963D3D0BA3F" + $"D454B9F9D3CCB9BED4540204BAF0C548BB90C55FBAE0C3F7BAD1C152BA3FC29A" + $"BB21C207BC51C2FBBBA6C29ABC79C3C1BCD2C54ABCA4C485BC32C55D0204BC51" + $"C2FBBC79C3C1BCE7C29DBE3CC247BD8EC263BE61C35FBE87C594BEA4C477BDF4" + $"C584BCD2C54ABD63C56ABCA4C4850204BF55D252BF69D2C4BFEDD260C11AD285" + $"C086D265C1CFD2E2C32CD3AFC275D358C20FD3A3BFD6D39E43D393BF4CD36E02" + $"02BFC4C2CBBFA0C3A8C030C38FBFC4C568C033C4A5BFA0C48A0A39325D325A34" + $"50354736443542343C36383438323632333430372F3B2F3C323C343D353D373D" + $"38443748344B334D2E4D284D244B214D234F274F2D4D334C354D364C374A3747" + $"39403C3F3C3F44414B425043554358415A455C475D465E3E5E3D5D3D5B3E593D" + $"573C50375A365C375E3660325F02044030C34530BC3A30304030BC3A30C34540" + $"50BC3A50C34550504050C34550BC3A150A090115024100000000000000003D3F" + $"FFC700004AC8000A080114123FE0000000000000003FD16BBDE000B4E6880117" + $"8322040A000100023ED0B40000000000003EE26B452A72BE0E720A000101023E" + $"D0B40000000000003EE26B452A72BE0E720A010102023ED0B40000000000003E" + $"E26B452A72BE0E720A010103023ED0B40000000000003EE26B452A72BE0E720A" + $"010104023ED0B40000000000003EE26B452A72BE0E720A02020506023ED0B400" + $"00000000003EE26B452A72BE0E720A030107023ED0B40000000000003EE26B45" + $"2A72BE0E720A030108023ED0B40000000000003EE26B452A72BE0E720A030109" + $"023ED0B40000000000003EE26B452A72BE0E720A04010A023ED0B40000000000" + $"003EE26B452A72BE0E720A04010B023ED0B40000000000003EE26B452A72BE0E" + $"720A04010C023ED0B40000000000003EE26B452A72BE0E720A04010D023ED0B4" + $"0000000000003EE26B452A72BE0E720A04010E023ED0B40000000000003EE26B" + $"452A72BE0E720A04010F023ED0B40000000000003EE26B452A72BE0E720A0501" + $"10023ED0B40000000000003EE26B452A72BE0E720A060111023ED0B400000000" + $"00003EE26B452A72BE0E720A060112023ED0B40000000000003EE26B452A72BE" + $"0E720A070113023ED0B40000000000003EE26B452A72BE0E72" +}; diff --git a/games-arcade/sdlpop/patches/sdlpop-1.18.1.patchset b/games-arcade/sdlpop/patches/sdlpop-1.18.1.patchset new file mode 100644 index 000000000..658b0af2a --- /dev/null +++ b/games-arcade/sdlpop/patches/sdlpop-1.18.1.patchset @@ -0,0 +1,60 @@ +From 4f80596d6192cda368d228aaca7fa95840c6eb9b Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Tue, 4 Sep 2018 12:47:13 +1000 +Subject: Fix build for Haiku + + +diff --git a/src/menu.c b/src/menu.c +index 3f0e5f9..3720e45 100644 +--- a/src/menu.c ++++ b/src/menu.c +@@ -1181,7 +1181,7 @@ void turn_setting_on_off(int setting_id, byte new_state, void* linked) { + break; + case SETTING_FULLSCREEN: + start_fullscreen = new_state; +- SDL_SetWindowFullscreen(window_, (new_state != 0) * SDL_WINDOW_FULLSCREEN_DESKTOP); ++// SDL_SetWindowFullscreen(window_, (new_state != 0) * SDL_WINDOW_FULLSCREEN_DESKTOP); + break; + case SETTING_USE_CORRECT_ASPECT_RATIO: + use_correct_aspect_ratio = new_state; +diff --git a/src/seg009.c b/src/seg009.c +index 691954e..e641ba5 100644 +--- a/src/seg009.c ++++ b/src/seg009.c +@@ -2108,7 +2108,7 @@ void __pascal far set_gr_mode(byte grmode) { + SDL_SetHint(SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING, "1"); + #endif + if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_NOPARACHUTE | +- SDL_INIT_GAMECONTROLLER | SDL_INIT_HAPTIC ) != 0) { ++ SDL_INIT_GAMECONTROLLER) != 0) { + sdlperror("SDL_Init"); + quit(1); + } +@@ -2117,7 +2117,7 @@ void __pascal far set_gr_mode(byte grmode) { + Uint32 flags = 0; + if (!start_fullscreen) start_fullscreen = check_param("full") != NULL; + if (start_fullscreen) flags |= SDL_WINDOW_FULLSCREEN_DESKTOP; +- flags |= SDL_WINDOW_RESIZABLE; ++// flags |= SDL_WINDOW_RESIZABLE; + + // Should use different default window dimensions when using 4:3 aspect ratio + if (use_correct_aspect_ratio && pop_window_width == 640 && pop_window_height == 400) { +@@ -2788,6 +2788,7 @@ void __pascal start_timer(int timer_index, int length) { + } + + void toggle_fullscreen() { ++#ifndef __HAIKU__ + uint32_t flags = SDL_GetWindowFlags(window_); + if (flags & SDL_WINDOW_FULLSCREEN_DESKTOP) { + SDL_SetWindowFullscreen(window_, 0); +@@ -2797,6 +2798,7 @@ void toggle_fullscreen() { + SDL_SetWindowFullscreen(window_, SDL_WINDOW_FULLSCREEN_DESKTOP); + SDL_ShowCursor(SDL_DISABLE); + } ++#endif + } + + bool ignore_tab = false; +-- +2.16.4 + diff --git a/games-arcade/sdlpop/sdlpop-1.18.1.recipe b/games-arcade/sdlpop/sdlpop-1.18.1.recipe new file mode 100644 index 000000000..78e5d4bd7 --- /dev/null +++ b/games-arcade/sdlpop/sdlpop-1.18.1.recipe @@ -0,0 +1,83 @@ +SUMMARY="An open-source port of Prince of Persia" +DESCRIPTION="SDLPoP is an open-source port of Prince of Persia that runs natively on Windows and Linux. \ +It is based on a disassembly of the DOS version, and uses SDL." +HOMEPAGE="http://www.princed.org/" +COPYRIGHT="Dávid Nagy" +LICENSE="GNU GPL v3" +REVISION="1" +SOURCE_URI="https://github.com/NagyD/SDLPoP/archive/v$portVersion.tar.gz" +SOURCE_DIR="SDLPoP-$portVersion" +CHECKSUM_SHA256="8032c47fad4b73021d636ead510bbc1ab5106cff77103e331ad0f32a49a13946" +PATCHES="sdlpop-$portVersion.patchset" +ADDITIONAL_FILES="sdlpop.rdef.in" + +ARCHITECTURES="!x86_gcc2 x86_64 ?x86" +SECONDARY_ARCHITECTURES="x86" + +GLOBAL_WRITABLE_FILES=" + settings/SDLPoP/SDLPoP.ini keep-old + settings/SDLPoP/SDLPoP.cfg keep-old + " + +PROVIDES=" + sdlpop = $portVersion + app:SDLPop + " + +REQUIRES=" + haiku$secondaryArchSuffix + lib:libGL$secondaryArchSuffix + lib:libSDL2_2.0$secondaryArchSuffix + lib:libSDL2_image_2.0${secondaryArchSuffix} + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libGL$secondaryArchSuffix + devel:libglu$secondaryArchSuffix + devel:libSDL2_2.0$secondaryArchSuffix + devel:libSDL2_image_2.0$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:make + cmd:pkg_config$secondaryArchSuffix + " + +BUILD() +{ + cd src + make $jobArgs +} + +INSTALL() +{ + mkdir -p $appsDir/SDLPoP $settingsDir/SDLPoP + cp -rf data doc mods $appsDir/SDLPoP + cp prince "$appsDir/SDLPoP/Prince of Persia" + + cp SDLPoP.ini $settingsDir/SDLPoP + touch $settingsDir/SDLPoP/SDLPoP.cfg + + ln -s $settingsDir/SDLPoP/SDLPoP.cfg \ + $appsDir/SDLPoP/SDLPoP.cfg + ln -s $settingsDir/SDLPoP/SDLPoP.ini \ + $appsDir/SDLPoP/SDLPoP.ini + + local APP_SIGNATURE="application/x-vnd.sdlpop" + local MAJOR="`echo "$portVersion" | cut -d. -f1`" + local MIDDLE="`echo "$portVersion" | cut -d. -f2`" + local MINOR="`echo "$portVersion" | cut -d. -f3`" + local LONG_INFO="$SUMMARY" + sed \ + -e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \ + -e "s|@MAJOR@|$MAJOR|" \ + -e "s|@MIDDLE@|$MIDDLE|" \ + -e "s|@MINOR@|$MINOR|" \ + -e "s|@LONG_INFO@|$LONG_INFO|" \ + $portDir/additional-files/sdlpop.rdef.in > $sourceDir/sdlpop.rdef + + addResourcesToBinaries $sourceDir/sdlpop.rdef \ + "$appsDir/SDLPoP/Prince of Persia" + addAppDeskbarSymlink "$appsDir/SDLPoP/Prince of Persia" "Prince of Persia" +}