{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":356814563,"defaultBranch":"main","name":"sdl12-compat","ownerLogin":"sulix","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2021-04-11T08:44:21.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/2116479?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1705843508.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"dcfed4ebd4a20356ec6a7974677adadb4b45983c","ref":"refs/heads/quitvideodoc","pushedAt":"2024-01-21T13:25:08.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"sulix","name":"David Gow","path":"/sulix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2116479?s=80&v=4"},"commit":{"message":"README: Document SDL12COMPAT_NO_QUIT_VIDEO\n\nThis hint was never documented in README.md, even though it was used in\na quirk, and mentioned briefly in COMPATIBILITY.md.\n\nFixes #329","shortMessageHtmlLink":"README: Document SDL12COMPAT_NO_QUIT_VIDEO"}},{"before":"e3f2eff653f47447ab57fc9b0e80e22406ef7d98","after":"8dc5130a08b7f499ec2d4f5c9a31600d84ce9fce","ref":"refs/heads/forcebpp","pushedAt":"2023-09-14T13:34:06.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"sulix","name":"David Gow","path":"/sulix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2116479?s=80&v=4"},"commit":{"message":"Quirks: Hyperspace Delivery Boy should run in 16bpp mode\n\nThe LGP port of Hyperspace Delivery Boy has broken colour keys if run in\n32-bpp mode (see bug #317). This is because it relies heavily on the\nimprecise RGB565->RGB888 conversion in earlier SDL 1.2 versions, when\nrunning in 32-bpp mode.\n\nThe game's assets are all in 565 format, and the game converts these to\nthe screen's format on load. It then sets a colour key. This presents a\nproblem, because:\n- The generic BlitNToN implementation in SDL 1.2 just shifted the\n values, so the resulting image was not at full range. Magenta became\n (F800F8).\n- Early versions of SDL 1.2 fell back to the BlitNToN blitter very\n frequently:\n https://github.com/libsdl-org/SDL-1.2/commit/6f4a75de61ce7fd63e14aa3207a51a767cac3a48\n- So, Hyperspace Delivery Boy calls SDL_MapRGB(0xF8, 0, 0xF8) to get the\n colour key, then sets it on the converted surface.\n- In SDL 2.0, the blitters now properly do a full-range conversion, so\n the magenta becomes (FF00FF), which now doesn't match the hardcoded\n (F800F8).\n- That being said, in general, it's not guaranteed that SDL_MapRGB()\n will do the same format conversion as SDL_CovertSurface(), so the\n \"correct\" way of handling this is to set the colour key before\n converting, which works (albeit slowly) in SDL2:\n https://github.com/libsdl-org/SDL/issues/1854\n- Since the conversion behaviour is different even between SDL 1.2\n versions, it's not worth trying to imitate it here, so we just force\n the game to run in 16-bpp mode, which works fine.\n- (And the game's README recommends it, too.)","shortMessageHtmlLink":"Quirks: Hyperspace Delivery Boy should run in 16bpp mode"}},{"before":"2cfef2e432c67fb051012c70a7f1a5a1bf0757cc","after":"1413ab50c6b2674c1f9daa48f8b359854d60bad8","ref":"refs/heads/relmousefix","pushedAt":"2023-09-13T13:23:05.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"sulix","name":"David Gow","path":"/sulix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2116479?s=80&v=4"},"commit":{"message":"Avoid SDL_GetMouseState(), which returns raw coordinates\n\nsdl12-compat tracks the mouse position in the MousePosition variable,\neven when we're not in relative mouse mode. We therefore don't need to\ncall SDL20_GetMouseState() to update it before entering relative mouse\nmode: we already have it from the last SDL_MOUSEMOTION event, and have\nalready applied any scaling we need.\n\nThis is important, because SDL_GetMouseState() returns the _raw_ mouse\ncoordinates, not the ones scaled by SDL_RenderSetLogicalSize(). So we\nend up with a mismatch. This results in a mouse offset on non-OpenGL,\nscaled games, like Alpha Centauri in fullscreen (see #318).\n\nWe could fix this by calling SDL_RenderWindowToLogical() instead, but\nthat complicates the codepath as we don't always have an SDL_Renderer\n(we might be using OpenGL), so this seems cleaner.\n\nI've tested this with SMAC (where it fixes the bug) and Wolf4SDL (which\nwas cited in the commit which introduced this check). Both work fine.","shortMessageHtmlLink":"Avoid SDL_GetMouseState(), which returns raw coordinates"}},{"before":null,"after":"2cfef2e432c67fb051012c70a7f1a5a1bf0757cc","ref":"refs/heads/relmousefix","pushedAt":"2023-09-13T13:21:57.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"sulix","name":"David Gow","path":"/sulix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2116479?s=80&v=4"},"commit":{"message":"Keep our tracked mouse coordinates whem entering relative mouse mode\n\nsdl12-compat tracks the mouse position in the MousePosition variable,\neven when we're not in relative mouse mode. We therefore don't need to\ncall SDL20_GetMouseState() to update it before entering relative mouse\nmode: we already have it from the last SDL_MOUSEMOTION event, and have\nalready applied any scaling we need.\n\nThis is important, because SDL_GetMouseState() returns the _raw_ mouse\ncoordinates, not the ones scaled by SDL_RenderSetLogicalSize(). So we\nend up with a mismatch. This results in a mouse offset on non-OpenGL,\nscaled games, like Alpha Centauri in fullscreen (see #318).\n\nWe could fix this by calling SDL_RenderWindowToLogical() instead, but\nthat complicates the codepath as we don't always have an SDL_Renderer\n(we might be using OpenGL), so this seems cleaner.\n\nI've tested this with SMAC (where it fixes the bug) and Wolf4SDL (which\nwas cited in the commit which introduced this check). Both work fine.","shortMessageHtmlLink":"Keep our tracked mouse coordinates whem entering relative mouse mode"}},{"before":"dc9879db9285394741d15ad56ddebb8c2c542d14","after":null,"ref":"refs/heads/ninjaglscale","pushedAt":"2023-09-04T14:29:26.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"sulix","name":"David Gow","path":"/sulix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2116479?s=80&v=4"}},{"before":null,"after":"e3f2eff653f47447ab57fc9b0e80e22406ef7d98","ref":"refs/heads/forcebpp","pushedAt":"2023-09-04T14:04:25.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"sulix","name":"David Gow","path":"/sulix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2116479?s=80&v=4"},"commit":{"message":"HACK: Add a hint to force a bit depth\n\nSome games (e.g. Hyperspace Delivery Boy) only work on a 16-bit display,\nbut request the highest bit-depth available. Add a hack to force a given\nbit depth, e.g.\n\nSDL12COMPAT_FORCE_BPP=16 ./hdb\n\nI'm not 100% convinced about this yet, but it works for now.","shortMessageHtmlLink":"HACK: Add a hint to force a bit depth"}},{"before":null,"after":"dc9879db9285394741d15ad56ddebb8c2c542d14","ref":"refs/heads/ninjaglscale","pushedAt":"2023-09-04T03:56:57.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"sulix","name":"David Gow","path":"/sulix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2116479?s=80&v=4"},"commit":{"message":"Quirks: Mark of the Ninja (humble bundle) needs OpenGL scaling disabled.","shortMessageHtmlLink":"Quirks: Mark of the Ninja (humble bundle) needs OpenGL scaling disabled."}},{"before":null,"after":"a8951b067401a7fa1fd9c50bf8757038912f578f","ref":"refs/heads/steelstorm_syswm","pushedAt":"2023-05-19T13:39:59.108Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"sulix","name":"David Gow","path":"/sulix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2116479?s=80&v=4"},"commit":{"message":"SysWW/X11: Return the X11 window as wmwindow and x11window\n\nSteel Storm (and presumably other darkplaces, SDL 1.2-based games)\nexpect x11.wmwindow to be valid if they've created a window and are\nrunning under X11. Just pass the same game window like we do for\nx11.window.\n\nSee the old darkplaces code here:\nhttps://github.com/xonotic/darkplaces/blob/a0465ad2ee16719587b0b7a80d4c1c2f7df1ac0e/vid_sdl.c#L2334\n\nThis should fix the BadWindow errors on Steel Storm Burning Retribution\n(issue #290)","shortMessageHtmlLink":"SysWW/X11: Return the X11 window as wmwindow and x11window"}},{"before":"dcb3af3cab4d36834f4b2492df4bc5dde9a773f7","after":"7621aa7a4f4ac83fa0c8688cb11ddeb8e357a5a1","ref":"refs/heads/civctp_compat_note","pushedAt":"2023-05-19T13:06:30.688Z","pushType":"push","commitsCount":1,"pusher":{"login":"sulix","name":"David Gow","path":"/sulix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2116479?s=80&v=4"},"commit":{"message":"COMPATIBILITY.md: Add a note for Civilization: Call to Power\n\nThis is the old Loki port, as described in issue #176. It's mostly just\na link to my website, where's there's an exhaustive (and exhausting)\npage which describes all the hacks needed to get the game working.","shortMessageHtmlLink":"COMPATIBILITY.md: Add a note for Civilization: Call to Power"}},{"before":null,"after":"dcb3af3cab4d36834f4b2492df4bc5dde9a773f7","ref":"refs/heads/civctp_compat_note","pushedAt":"2023-05-19T13:02:55.529Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"sulix","name":"David Gow","path":"/sulix","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2116479?s=80&v=4"},"commit":{"message":"Bumped version to 1.2.63 for future development towards a 1.2.64 release.","shortMessageHtmlLink":"Bumped version to 1.2.63 for future development towards a 1.2.64 rele…"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wMS0yMVQxMzoyNTowOC4wMDAwMDBazwAAAAPlHvop","endCursor":"Y3Vyc29yOnYyOpK7MjAyMy0wNS0xOVQxMzowMjo1NS41Mjk0OTNazwAAAAMwLEY0"}},"title":"Activity · sulix/sdl12-compat"}