{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":775213903,"defaultBranch":"main","name":"retro-z80","ownerLogin":"samukallio","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2024-03-21T00:55:51.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/9107857?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1710982552.812441","currentOid":""},"activityList":{"items":[{"before":"0f97fe13fcfc8a12da3fa5960b5cbacba181c153","after":"537101c3c3346228097cd3fa883e2810efc79c0b","ref":"refs/heads/main","pushedAt":"2024-04-10T07:30:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"samukallio","name":"Samu Kallio","path":"/samukallio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9107857?s=80&v=4"},"commit":{"message":"Remove timing debug code","shortMessageHtmlLink":"Remove timing debug code"}},{"before":"64e86f09debd6939fd45ead20c24255b6a986afb","after":"0f97fe13fcfc8a12da3fa5960b5cbacba181c153","ref":"refs/heads/main","pushedAt":"2024-04-10T07:23:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"samukallio","name":"Samu Kallio","path":"/samukallio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9107857?s=80&v=4"},"commit":{"message":"Add fast sprite drawing routine for aligned sprites","shortMessageHtmlLink":"Add fast sprite drawing routine for aligned sprites"}},{"before":"d08e160f9dbeab45228f100125d6f84a3bc0dfb5","after":"64e86f09debd6939fd45ead20c24255b6a986afb","ref":"refs/heads/main","pushedAt":"2024-04-09T17:40:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"samukallio","name":"Samu Kallio","path":"/samukallio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9107857?s=80&v=4"},"commit":{"message":"Make the ball more round","shortMessageHtmlLink":"Make the ball more round"}},{"before":"0f9101dee5625d6feab863fd13ca9a3997bc1604","after":"d08e160f9dbeab45228f100125d6f84a3bc0dfb5","ref":"refs/heads/main","pushedAt":"2024-04-09T17:20:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"samukallio","name":"Samu Kallio","path":"/samukallio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9107857?s=80&v=4"},"commit":{"message":"Fix indentation","shortMessageHtmlLink":"Fix indentation"}},{"before":"12295aca0b43b620da7dce313971127a27e0644e","after":"0f9101dee5625d6feab863fd13ca9a3997bc1604","ref":"refs/heads/main","pushedAt":"2024-04-09T17:19:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"samukallio","name":"Samu Kallio","path":"/samukallio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9107857?s=80&v=4"},"commit":{"message":"Add frame-stepping mode","shortMessageHtmlLink":"Add frame-stepping mode"}},{"before":"ee9d28d36a39e83605226b7f365d1f772f465a6a","after":"12295aca0b43b620da7dce313971127a27e0644e","ref":"refs/heads/main","pushedAt":"2024-04-09T16:53:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"samukallio","name":"Samu Kallio","path":"/samukallio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9107857?s=80&v=4"},"commit":{"message":"Add some comments, add PONG_FRAME_TICKS constant","shortMessageHtmlLink":"Add some comments, add PONG_FRAME_TICKS constant"}},{"before":"ed20dead17f2f6b32f3f9780c2a18182ac013760","after":"ee9d28d36a39e83605226b7f365d1f772f465a6a","ref":"refs/heads/main","pushedAt":"2024-04-09T16:44:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"samukallio","name":"Samu Kallio","path":"/samukallio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9107857?s=80&v=4"},"commit":{"message":"Add simple paddle collision","shortMessageHtmlLink":"Add simple paddle collision"}},{"before":"3060b44234b714ba6e281780e46d5d05e06166a1","after":"ed20dead17f2f6b32f3f9780c2a18182ac013760","ref":"refs/heads/main","pushedAt":"2024-04-09T15:22:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"samukallio","name":"Samu Kallio","path":"/samukallio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9107857?s=80&v=4"},"commit":{"message":"Add comments, rename labels","shortMessageHtmlLink":"Add comments, rename labels"}},{"before":"b849566daede0462429a37253ad4f31fdf2562e1","after":"3060b44234b714ba6e281780e46d5d05e06166a1","ref":"refs/heads/main","pushedAt":"2024-04-09T15:15:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"samukallio","name":"Samu Kallio","path":"/samukallio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9107857?s=80&v=4"},"commit":{"message":"Change the algorithm for movement and collision\n\nThe previous implementation stored X and Y position as 8.8 fixed point\nnumbers and added 8.8 fixed point deltas to them every frame. While this\nseems natural, it makes implementing collisions difficult since we end up\nhaving to calculate fractional Y-movement on X-collision, and vice versa.\nThat would require relatively slow fixed-point calculations, which I'd\nlike to avoid. It was possible to avoid the calculations in the special\ncase where the ball only collides with the edges of the rectangular field,\nbut paddle-ball collisions are more complicated.\n\nTherefore, the new strategy is to store the X and Y coordinates of the ball\nas simple 8-bit unsigned integers. Instead of X and Y velocities, we use\ncountdown timers that increment/decrement X or Y when they reach zero. These\ntimers count \"ticks\" of which there are currently 16 per frame. Once a timer\nreaches zero, it is reset to a preset value. The higher the preset value,\nthe slower the motion. The preset value is effectively proportional to the\nreciprocal of the velocity.\n\nThis strategy allows us to easily step the movement pixel-by-pixel in order\nto process collisions with pixel perfect accuracy, and without involving any\nfixed-point math.","shortMessageHtmlLink":"Change the algorithm for movement and collision"}},{"before":"3b76e5e07245a446eb97b6cbeab09de96eda3c2f","after":"b849566daede0462429a37253ad4f31fdf2562e1","ref":"refs/heads/main","pushedAt":"2024-04-07T11:33:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"samukallio","name":"Samu Kallio","path":"/samukallio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9107857?s=80&v=4"},"commit":{"message":"Use symmetries to reduce sine LUT size","shortMessageHtmlLink":"Use symmetries to reduce sine LUT size"}},{"before":"6deefb47e5b033cdc16c58a96b7912ed803ee3a8","after":"3b76e5e07245a446eb97b6cbeab09de96eda3c2f","ref":"refs/heads/main","pushedAt":"2024-04-06T09:48:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"samukallio","name":"Samu Kallio","path":"/samukallio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9107857?s=80&v=4"},"commit":{"message":"Use a unified sprite drawing routine","shortMessageHtmlLink":"Use a unified sprite drawing routine"}},{"before":"1ac3e5631c419d4f0e518beb38bf2d67f9e52cda","after":"6deefb47e5b033cdc16c58a96b7912ed803ee3a8","ref":"refs/heads/main","pushedAt":"2024-04-06T09:40:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"samukallio","name":"Samu Kallio","path":"/samukallio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9107857?s=80&v=4"},"commit":{"message":"Draw paddles","shortMessageHtmlLink":"Draw paddles"}},{"before":"89db822e1393a8a1bdff136c4a5b10f5128d3080","after":"1ac3e5631c419d4f0e518beb38bf2d67f9e52cda","ref":"refs/heads/main","pushedAt":"2024-04-06T09:23:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"samukallio","name":"Samu Kallio","path":"/samukallio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9107857?s=80&v=4"},"commit":{"message":"Draw play area rectangle, fix collision bugs","shortMessageHtmlLink":"Draw play area rectangle, fix collision bugs"}},{"before":"eabf2f2df9202232fa23ecc699281c70664b20dc","after":"89db822e1393a8a1bdff136c4a5b10f5128d3080","ref":"refs/heads/main","pushedAt":"2024-04-06T09:07:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"samukallio","name":"Samu Kallio","path":"/samukallio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9107857?s=80&v=4"},"commit":{"message":"Make play area extents configurable","shortMessageHtmlLink":"Make play area extents configurable"}},{"before":"fd9e18c3d09c07e3e4827e3c44041a043b7a6bcc","after":"eabf2f2df9202232fa23ecc699281c70664b20dc","ref":"refs/heads/main","pushedAt":"2024-04-05T13:33:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"samukallio","name":"Samu Kallio","path":"/samukallio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9107857?s=80&v=4"},"commit":{"message":"Get rid of tetris_zero_data","shortMessageHtmlLink":"Get rid of tetris_zero_data"}},{"before":"77849d472561aabc44c67d8d2aaba2de8be4359e","after":"fd9e18c3d09c07e3e4827e3c44041a043b7a6bcc","ref":"refs/heads/main","pushedAt":"2024-04-05T08:57:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"samukallio","name":"Samu Kallio","path":"/samukallio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9107857?s=80&v=4"},"commit":{"message":"Simplify procedure names","shortMessageHtmlLink":"Simplify procedure names"}},{"before":"059ce684cb294343c4ebbd7dfb11db8e4cc15aa3","after":"77849d472561aabc44c67d8d2aaba2de8be4359e","ref":"refs/heads/main","pushedAt":"2024-04-05T08:53:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"samukallio","name":"Samu Kallio","path":"/samukallio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9107857?s=80&v=4"},"commit":{"message":"Use packed wall kick table to save ROM space","shortMessageHtmlLink":"Use packed wall kick table to save ROM space"}},{"before":"760055174eaea14323917e8317593bac91014a81","after":"059ce684cb294343c4ebbd7dfb11db8e4cc15aa3","ref":"refs/heads/main","pushedAt":"2024-04-04T11:53:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"samukallio","name":"Samu Kallio","path":"/samukallio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9107857?s=80&v=4"},"commit":{"message":"Fix file permissions","shortMessageHtmlLink":"Fix file permissions"}},{"before":"93f11c465388f5cb0756c0801e4c674d0f076aa0","after":"760055174eaea14323917e8317593bac91014a81","ref":"refs/heads/main","pushedAt":"2024-04-04T11:53:20.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"samukallio","name":"Samu Kallio","path":"/samukallio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9107857?s=80&v=4"},"commit":{"message":"Use packed piece table to save ROM space","shortMessageHtmlLink":"Use packed piece table to save ROM space"}},{"before":"91946ac651c5e9d51060baa30f6c4955b03c71c8","after":"93f11c465388f5cb0756c0801e4c674d0f076aa0","ref":"refs/heads/main","pushedAt":"2024-04-04T07:37:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"samukallio","name":"Samu Kallio","path":"/samukallio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9107857?s=80&v=4"},"commit":{"message":"Add constants to specify twister VRAM buffer size","shortMessageHtmlLink":"Add constants to specify twister VRAM buffer size"}},{"before":"a772183c44d1015e21d587ed17ee6787bf64e5b5","after":"91946ac651c5e9d51060baa30f6c4955b03c71c8","ref":"refs/heads/main","pushedAt":"2024-04-04T07:33:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"samukallio","name":"Samu Kallio","path":"/samukallio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9107857?s=80&v=4"},"commit":{"message":"Add some comments","shortMessageHtmlLink":"Add some comments"}},{"before":"4dd6dbfe83408becbdaee89dac0a34626b20f9ad","after":"a772183c44d1015e21d587ed17ee6787bf64e5b5","ref":"refs/heads/main","pushedAt":"2024-04-04T07:14:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"samukallio","name":"Samu Kallio","path":"/samukallio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9107857?s=80&v=4"},"commit":{"message":"Make the twister twist in both directions","shortMessageHtmlLink":"Make the twister twist in both directions"}},{"before":"4e108ee7677da4f2e55896cb6b7195c6f320c04a","after":"4dd6dbfe83408becbdaee89dac0a34626b20f9ad","ref":"refs/heads/main","pushedAt":"2024-04-03T17:05:03.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"samukallio","name":"Samu Kallio","path":"/samukallio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9107857?s=80&v=4"},"commit":{"message":"Add twister effect","shortMessageHtmlLink":"Add twister effect"}},{"before":"b6063ca1c7b9bd136cbccdafe2ada30e4b65df06","after":"4e108ee7677da4f2e55896cb6b7195c6f320c04a","ref":"refs/heads/main","pushedAt":"2024-04-03T10:01:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"samukallio","name":"Samu Kallio","path":"/samukallio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9107857?s=80&v=4"},"commit":{"message":"Begin implementing Pong","shortMessageHtmlLink":"Begin implementing Pong"}},{"before":"80c3088240d975b74f396605dac5f07e4eb5d69d","after":"b6063ca1c7b9bd136cbccdafe2ada30e4b65df06","ref":"refs/heads/main","pushedAt":"2024-04-03T06:11:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"samukallio","name":"Samu Kallio","path":"/samukallio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9107857?s=80&v=4"},"commit":{"message":"Fix level not increasing","shortMessageHtmlLink":"Fix level not increasing"}},{"before":"8078b20367bf0730c520b14d9226300e4790b7f4","after":"80c3088240d975b74f396605dac5f07e4eb5d69d","ref":"refs/heads/main","pushedAt":"2024-03-31T08:14:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"samukallio","name":"Samu Kallio","path":"/samukallio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9107857?s=80&v=4"},"commit":{"message":"Update README.md","shortMessageHtmlLink":"Update README.md"}},{"before":"f7e1434d896b3cdcfe5e5bbb08800715cd4accc5","after":"8078b20367bf0730c520b14d9226300e4790b7f4","ref":"refs/heads/main","pushedAt":"2024-03-31T08:11:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"samukallio","name":"Samu Kallio","path":"/samukallio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9107857?s=80&v=4"},"commit":{"message":"Update README.md","shortMessageHtmlLink":"Update README.md"}},{"before":"e379e9f5b64a2f270ca1526f830f225bccf81283","after":"f7e1434d896b3cdcfe5e5bbb08800715cd4accc5","ref":"refs/heads/main","pushedAt":"2024-03-31T08:00:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"samukallio","name":"Samu Kallio","path":"/samukallio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9107857?s=80&v=4"},"commit":{"message":"Create emulator README.md","shortMessageHtmlLink":"Create emulator README.md"}},{"before":"aa22c74ec3b3b8478f4b0a2888161f0e136ed3db","after":"e379e9f5b64a2f270ca1526f830f225bccf81283","ref":"refs/heads/main","pushedAt":"2024-03-31T07:09:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"samukallio","name":"Samu Kallio","path":"/samukallio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9107857?s=80&v=4"},"commit":{"message":"Update software README.md","shortMessageHtmlLink":"Update software README.md"}},{"before":"afe2fc65507dbed0a87ecc1deebd1cefb5b021af","after":"aa22c74ec3b3b8478f4b0a2888161f0e136ed3db","ref":"refs/heads/main","pushedAt":"2024-03-31T07:07:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"samukallio","name":"Samu Kallio","path":"/samukallio","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9107857?s=80&v=4"},"commit":{"message":"Create software README.md","shortMessageHtmlLink":"Create software README.md"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAELMI_swA","startCursor":null,"endCursor":null}},"title":"Activity ยท samukallio/retro-z80"}