diff --git a/docs/twitter/1687257354490818561/media/1687250591813079041_1.jpg b/docs/twitter/1687257354490818561/media/1687250591813079041_1.jpg new file mode 100644 index 00000000..205e282a Binary files /dev/null and b/docs/twitter/1687257354490818561/media/1687250591813079041_1.jpg differ diff --git a/docs/twitter/1687257354490818561/media/1687250591813079041_2.jpg b/docs/twitter/1687257354490818561/media/1687250591813079041_2.jpg new file mode 100644 index 00000000..0d9a0b75 Binary files /dev/null and b/docs/twitter/1687257354490818561/media/1687250591813079041_2.jpg differ diff --git a/docs/twitter/1687257354490818561/media/1687251721032978432_1.jpg b/docs/twitter/1687257354490818561/media/1687251721032978432_1.jpg new file mode 100644 index 00000000..5a1b91b4 Binary files /dev/null and b/docs/twitter/1687257354490818561/media/1687251721032978432_1.jpg differ diff --git a/docs/twitter/1687257354490818561/media/1687251721032978432_2.jpg b/docs/twitter/1687257354490818561/media/1687251721032978432_2.jpg new file mode 100644 index 00000000..4adde9f1 Binary files /dev/null and b/docs/twitter/1687257354490818561/media/1687251721032978432_2.jpg differ diff --git a/docs/twitter/1687257354490818561/media/1687252813468852225_1.jpg b/docs/twitter/1687257354490818561/media/1687252813468852225_1.jpg new file mode 100644 index 00000000..452e58b1 Binary files /dev/null and b/docs/twitter/1687257354490818561/media/1687252813468852225_1.jpg differ diff --git a/docs/twitter/1687257354490818561/media/1687253442643755008_1.jpg b/docs/twitter/1687257354490818561/media/1687253442643755008_1.jpg new file mode 100644 index 00000000..74f3641d Binary files /dev/null and b/docs/twitter/1687257354490818561/media/1687253442643755008_1.jpg differ diff --git a/docs/twitter/1687257354490818561/thread.md b/docs/twitter/1687257354490818561/thread.md new file mode 100644 index 00000000..640dee32 --- /dev/null +++ b/docs/twitter/1687257354490818561/thread.md @@ -0,0 +1,53 @@ +--- +title: "For anyone tuning in now, SPC is kind of like a Pico8, but instead of being a po" +author: "NOTimothyLottes" +handle: "@NOTimothyLottes" +post_url: "https://x.com/NOTimothyLottes/status/1687257354490818561" +post_id: "1687257354490818561" +timestamp: "2023-08-04 00:21:15" +post_count: 7 +reply_count: 0 +repost_count: 0 +like_count: 5 +view_count: 415 +--- + +# @NOTimothyLottes — For anyone tuning in now, SPC is kind of like a Pico8, but instead of being a po + +## Post 1 (2023-08-03 23:54:23) + +SPC: Left off with KEY and GAMEPAD input GPU-accessable. NOP design, no functions, no API, just a fixed VA address and data format to read, dead easy. + +![Media 1](./media/1687250591813079041_1.jpg) +![Media 2](./media/1687250591813079041_2.jpg) + +## Post 2 (2023-08-03 23:58:52) — reply to Post 1 + +Wrote some console data dumping to aid in bringing up HID parsers for Deck and three generations of PlayStation controllers. Apparently XBox controllers aren't HIDs so not sure how one is supposed to access those. + +![Media 1](./media/1687251721032978432_1.jpg) +![Media 2](./media/1687251721032978432_2.jpg) + +## Post 3 (2023-08-04 00:03:13) — reply to Post 2 + +Supporting hot plug was a bit of a mess, just trying to open devices every second. Adding open devices to an epoll. {Product, vendor} isn't enough to ID a device, too much aliasing, so I use packet size as well. + +![Media 1](./media/1687252813468852225_1.jpg) + +## Post 4 (2023-08-04 00:05:43) — reply to Post 3 + +Open devices with matching packet size get set in a bit array, and I collect up to 4 of those device outputs to sent to the GPU. Special logic to always place Steam Deck controls last to make docking work well. + +![Media 1](./media/1687253442643755008_1.jpg) + +## Post 5 (2023-08-04 00:09:57) — reply to Post 4 + +I'll have to tackle audio at some point, but I'm skipping networking for version 1. But otherwise SPC is good to move on to the next step, which is to build out the GPU side assembler & data editor. Which will be written in binary at first. + +## Post 6 (2023-08-04 00:14:04) — reply to Post 5 + +Project is roughly 2000 lines of C at this point. With no includes. Anyone have any suggestions for hosting let me know. Source will be released. + +## Post 7 (2023-08-04 00:21:15) — reply to Post 6 + +For anyone tuning in now, SPC is kind of like a Pico8, but instead of being a portable fantasy console, SPC turns the Steam Deck into an actual console for exclusive GPU assembly projects. The way consoles had been done before silly portability became the only focus. diff --git a/docs/twitter/1687257354490818561/thread_data.json b/docs/twitter/1687257354490818561/thread_data.json new file mode 100644 index 00000000..27e5c533 --- /dev/null +++ b/docs/twitter/1687257354490818561/thread_data.json @@ -0,0 +1,128 @@ +{ + "root_post_id": "1687257354490818561", + "posts": [ + { + "post_id": "1687250591813079041", + "author": "NOTimothyLottes", + "handle": "NOTimothyLottes", + "text": "SPC: Left off with KEY and GAMEPAD input GPU-accessable. NOP design, no functions, no API, just a fixed VA address and data format to read, dead easy.", + "timestamp": "2023-08-03 23:54:23", + "media_urls": [ + "https://pbs.twimg.com/media/F2pRdu9WgAABCLE?format=jpg&name=orig", + "https://pbs.twimg.com/media/F2pReKsXoAAPvow?format=jpg&name=orig" + ], + "reply_to_id": null, + "quote_of_id": null, + "metrics": { + "reply_count": 1, + "repost_count": 0, + "like_count": 3, + "view_count": 1397 + } + }, + { + "post_id": "1687251721032978432", + "author": "NOTimothyLottes", + "handle": "NOTimothyLottes", + "text": "Wrote some console data dumping to aid in bringing up HID parsers for Deck and three generations of PlayStation controllers. Apparently XBox controllers aren't HIDs so not sure how one is supposed to access those.", + "timestamp": "2023-08-03 23:58:52", + "media_urls": [ + "https://pbs.twimg.com/media/F2pSfIHXcAMI-IQ?format=jpg&name=orig", + "https://pbs.twimg.com/media/F2pSfzAWcAMo6t7?format=jpg&name=orig" + ], + "reply_to_id": "1687250591813079041", + "quote_of_id": null, + "metrics": { + "reply_count": 1, + "repost_count": 0, + "like_count": 1, + "view_count": 197 + } + }, + { + "post_id": "1687252813468852225", + "author": "NOTimothyLottes", + "handle": "NOTimothyLottes", + "text": "Supporting hot plug was a bit of a mess, just trying to open devices every second. Adding open devices to an epoll. {Product, vendor} isn't enough to ID a device, too much aliasing, so I use packet size as well.", + "timestamp": "2023-08-04 00:03:13", + "media_urls": [ + "https://pbs.twimg.com/media/F2pTfekWYAAAwSi?format=jpg&name=orig" + ], + "reply_to_id": "1687251721032978432", + "quote_of_id": null, + "metrics": { + "reply_count": 1, + "repost_count": 0, + "like_count": 2, + "view_count": 197 + } + }, + { + "post_id": "1687253442643755008", + "author": "NOTimothyLottes", + "handle": "NOTimothyLottes", + "text": "Open devices with matching packet size get set in a bit array, and I collect up to 4 of those device outputs to sent to the GPU. Special logic to always place Steam Deck controls last to make docking work well.", + "timestamp": "2023-08-04 00:05:43", + "media_urls": [ + "https://pbs.twimg.com/media/F2pUEG0XwAEwYvP?format=jpg&name=orig" + ], + "reply_to_id": "1687252813468852225", + "quote_of_id": null, + "metrics": { + "reply_count": 2, + "repost_count": 0, + "like_count": 0, + "view_count": 237 + } + }, + { + "post_id": "1687254511239221249", + "author": "NOTimothyLottes", + "handle": "NOTimothyLottes", + "text": "I'll have to tackle audio at some point, but I'm skipping networking for version 1. But otherwise SPC is good to move on to the next step, which is to build out the GPU side assembler & data editor. Which will be written in binary at first.", + "timestamp": "2023-08-04 00:09:57", + "media_urls": [], + "reply_to_id": "1687253442643755008", + "quote_of_id": null, + "metrics": { + "reply_count": 1, + "repost_count": 0, + "like_count": 0, + "view_count": 211 + } + }, + { + "post_id": "1687255546372493313", + "author": "NOTimothyLottes", + "handle": "NOTimothyLottes", + "text": "Project is roughly 2000 lines of C at this point. With no includes. Anyone have any suggestions for hosting let me know. Source will be released.", + "timestamp": "2023-08-04 00:14:04", + "media_urls": [], + "reply_to_id": "1687254511239221249", + "quote_of_id": null, + "metrics": { + "reply_count": 2, + "repost_count": 0, + "like_count": 2, + "view_count": 402 + } + }, + { + "post_id": "1687257354490818561", + "author": "NOTimothyLottes", + "handle": "NOTimothyLottes", + "text": "For anyone tuning in now, SPC is kind of like a Pico8, but instead of being a portable fantasy console, SPC turns the Steam Deck into an actual console for exclusive GPU assembly projects. The way consoles had been done before silly portability became the only focus.", + "timestamp": "2023-08-04 00:21:15", + "media_urls": [], + "reply_to_id": "1687255546372493313", + "quote_of_id": null, + "metrics": { + "reply_count": 0, + "repost_count": 0, + "like_count": 5, + "view_count": 415 + } + } + ], + "source_url": "https://x.com/NOTimothyLottes/status/1687257354490818561" +} \ No newline at end of file