+-^CrossBow^- Posted April 8, 2021 Share Posted April 8, 2021 17 hours ago, Albert said: Wow, that's very cool. The first two work fine using the iOS camera app, but the last one does not. Probably would work better with a dedicated QR code reader app. Thanks for digging those up. Pretty interesting especially to see that first one work!! ..Al My phone can't read the Tesla QR code at all but was able to read the DOTA one. However, my phone's camera doesn't recognize anything and I had to install a dedicated barcode scanner app on my phone sometime ago. But I think the app is only able to read black and white colored codes which is why it can't read the Tesla one. It can tell there is something there as I see it locking onto the dots, but just keeps shifting around them. Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted April 8, 2021 Author Share Posted April 8, 2021 (edited) Thanks for posting, Darrell. "...the single hardest thing I have ever done an 8-bit microprocessor..." It's tough, that's for sure. But after solving the Reed-Solomon ECC it doesn't look too complicated. It is just ~80 bytes of code and a 16 bytes table. But there were quite a few iterations until I got there. And I still have to test and probably bug fix it. What seems more challenging is placing the data bits. For a 21x21 QR code which Audacity Games uses it looks OK: But when you switch to 25x25 or larger, additional alignment patterns have to be added. And then the rectangular code modules suddenly become complex: That's the next challenge I am facing. The biggest problem is, that I haven't found a way to test intermedia codes yet. And I found no app which checks QR codes and points out the bugs. This will make testing not easy. Edited April 8, 2021 by Thomas Jentzsch 2 Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted April 9, 2021 Author Share Posted April 9, 2021 (edited) Voila! The first 25x25 QR code generator is working. The encoded message is hard coded (you can patch the ROM if you like), but the QR code is really generated on-the-fly. There are still a few to dos, e.g. there is NO RAM free and the mask pattern is fixed. But these are relatively simple problems. Code and data currently require ~600 bytes, the code is generated in ~190,000 cycles. BTW: With the left difficulty switch you can move the QR code up and down. This is meant for testing on CRT TVs. QR Code Generator V0.1 (Thomas Jentzsch) (2021).bin Edited April 9, 2021 by Thomas Jentzsch 14 Quote Link to comment Share on other sites More sharing options...
Albert Posted April 9, 2021 Share Posted April 9, 2021 1 minute ago, Thomas Jentzsch said: Voila! The first 25x25 QR code generator is working. The encoded message is hard coded (you can patch the ROM if you like), but the QR code is really generated on-the-fly. Awesome!! 1 Quote Link to comment Share on other sites More sharing options...
KevKelley Posted April 9, 2021 Share Posted April 9, 2021 Apart from how Audacity Games utilized the codes, what kind of applications can these be used for? I had not realized how involved they are. I just assumed they were like a complex barcode. Quote Link to comment Share on other sites More sharing options...
+Andrew Davie Posted April 9, 2021 Share Posted April 9, 2021 4 minutes ago, KevKelley said: Apart from how Audacity Games utilized the codes, what kind of applications can these be used for? I had not realized how involved they are. I just assumed they were like a complex barcode. The "QR Code" game. Goal is to remove pixels from the QR code and still have a valid code. That is, you need to balance zapping the error correcting pixels, or only enough of the original pixels such that the error correcting still works... and make a way for your hero to travel from one side to the other in "QR land". If you get it wrong, you get taken to a NSFW URL that gets you instantly dismissed from work - or worse. 2 Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted April 9, 2021 Author Share Posted April 9, 2021 6 minutes ago, KevKelley said: I had not realized how involved they are. Decoding is even waaay more complex. Quote Link to comment Share on other sites More sharing options...
bluswimmer Posted April 10, 2021 Share Posted April 10, 2021 (edited) 5 hours ago, KevKelley said: Apart from how Audacity Games utilized the codes, what kind of applications can these be used for? I had not realized how involved they are. I just assumed they were like a complex barcode. Some puzzles, maybe? Granted I don't imagine it would get much more complicated than inputting a code you get from scanning. Given score submissions, I do have to wonder how you'd get around people scanning someone else's code. It looks like Circus Convoy is using the cartridge id as a way to verify this, but that's not a luxury most of us have access to. Edit, just hit me that this could potentially used to hide information from another player in multiplayer games. Could open up some interesting avenues for design, I suppose. Edited April 10, 2021 by bluswimmer 2 Quote Link to comment Share on other sites More sharing options...
KevKelley Posted April 10, 2021 Share Posted April 10, 2021 1 hour ago, bluswimmer said: Some puzzles, maybe? Granted I don't imagine it would get much more complicated than inputting a code you get from scanning. Given score submissions, I do have to wonder how you'd get around people scanning someone else's code. It looks like Circus Convoy is using the cartridge id as a way to verify this, but that's not a luxury most of us have access to. Edit, just hit me that this could potentially used to hide information from another player in multiplayer games. Could open up some interesting avenues for design, I suppose. I welcome any development for the Atari. I just wonder how this can be used in gaming. The Audacity application is very interesting but I was curious what else. It's like watching Demo videos and wondering how the hardware pushing demos could be used for games (or the new MovieCart). I was wondering if QR Codes could somehow create weird hybrid games, kind of like the old Odyssey2 board game games. Or be used as a kind of off system addition, like if the game generates a code that can later be recalled. 1 Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted April 10, 2021 Author Share Posted April 10, 2021 4 hours ago, bluswimmer said: Given score submissions, I do have to wonder how you'd get around people scanning someone else's code. You can always combine that with an account you have to be logged in. I think ideas how this might enhance game play are plenty. People can be very creative. E.g. this could become an online replacement for the SaveKey high score function which allows sharing emulator and console high scores. Of course a SaveKey is more convenient, but score submissions to online tournaments would become easier this way. 2 hours ago, KevKelley said: I was wondering if QR Codes could somehow create weird hybrid games, kind of like the old Odyssey2 board game games. Or be used as a kind of off system addition, like if the game generates a code that can later be recalled. My thoughts exactly. Mixing an Atari 2600 game with web content or storing access passwords (one can encode quite a lot in ~20 bytes). 1 Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted April 10, 2021 Author Share Posted April 10, 2021 A litte update. I have now implemented all eight mask pattern (might not be required). At first glance it looked like that really complicated math would be required (e.g invert pixel if (x * y % 2 + x * y % 3) % 2 == 0). But I found some shortcuts, so only basic math required. Then I defined 16 short text messages. Together with the eight mask pattern, this allows for 128 combinations. A new QR code is generated when you press fire. By overlapping input and output data, I have reduced RAM usage to 91 bytes. Code size increased to ~720 bytes, mainly due to the seven new mask pattern. The standard requires that the code should evaluate the result using all eight pattern and chose the best one. But I suppose for our needs we might get away with only one, fixed mask pattern and save some ROM. BTW: Audacity Games only uses four mask pattern (the simpler ones ) and iterates over them. So if one pattern should fail, the user can try with a different one. QR Code Generator V0.2 (Thomas Jentzsch) (2021).bin 5 Quote Link to comment Share on other sites More sharing options...
+Karl G Posted April 10, 2021 Share Posted April 10, 2021 Most impressive! Now all that's needed is some code to use the light gun as a QR code reader. (I kid... I kid...) 4 Quote Link to comment Share on other sites More sharing options...
KevKelley Posted April 10, 2021 Share Posted April 10, 2021 23 minutes ago, Karl G said: Most impressive! Now all that's needed is some code to use the light gun as a QR code reader. (I kid... I kid...) I like this line of thinking. This makes me think of science fiction or military development, where years later we peons get to experience the grandeur of such technology in the form of games. Lol Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted April 10, 2021 Author Share Posted April 10, 2021 3 hours ago, Karl G said: Most impressive! Now all that's needed is some code to use the light gun as a QR code reader. Even if this would be technically possible, the code required goes way above the limits of the good old 6507: Berlekamp-Massey, Chien search, Forney algorithm... Quote Link to comment Share on other sites More sharing options...
+Karl G Posted April 10, 2021 Share Posted April 10, 2021 How many bytes of data can you encode if you use binary format instead of alphanumeric? I'm wondering if it would be handy way to dump some variable values to the screen for diagnostic purposes when testers are testing a project on hardware. Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted April 10, 2021 Author Share Posted April 10, 2021 3 minutes ago, Karl G said: How many bytes of data can you encode if you use binary format instead of alphanumeric? I am using binary. 26 bytes is the limit with the current size and error correction. 2 Quote Link to comment Share on other sites More sharing options...
Octavio Pinho Bokel Posted April 11, 2021 Share Posted April 11, 2021 This is all really impressive! Can you post the source code? Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted April 11, 2021 Author Share Posted April 11, 2021 10 minutes ago, Octavio Pinho Bokel said: Can you post the source code? That's my plan. I am currently commenting and reorganizing it. 1 Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted April 11, 2021 Author Share Posted April 11, 2021 Done, see first post. 2 2 Quote Link to comment Share on other sites More sharing options...
+ZeroPage Homebrew Posted April 12, 2021 Share Posted April 12, 2021 (edited) ZeroPage Homebrew is checking out QR Code Generator (and other 2600 generated QR Codes) on tomorrow's (Tue Apr 13, 2021) stream LIVE on Twitch at 6PM PT | 9PM ET | 1AM GMT! Hope everyone can watch! ZPH Twitch Stream: https://www.twitch.tv/zeropagehomebrew/ Games: Squareraid (2021 WIP) by Ben Larson @Ben_Larson QR Code Generator (2021) by Thomas Jentzsch @Thomas Jentzsch Kung Fu Kombat 2 (2021 WIP) by Edward Smith @easmith Tower of Rubble (2021) by Dion Olsthoorn @Dionoid (For Harmony Games) (SET VIDEO TO 1080P60 FOR FULL QUALITY) Edited April 15, 2021 by ZeroPage Homebrew 1 Quote Link to comment Share on other sites More sharing options...
+Karl G Posted April 14, 2021 Share Posted April 14, 2021 As I mentioned on the stream, I was wondering about adding this to my WIP Penult as a way to dump diagnostic info to the screen in case someone encounters an issue while testing on real hardware. If e.g. Select was pushed, the game could jump to a routine that copied some important variables and the value of the stack pointer to the area of RAM this code isn't using, and display them in the form of a QR code or two. That way, testers could send me a picture of their screens, and I could use that to help diagnose issues. I don't know how often this would be useful, but it seems like an interesting idea at least. Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted April 14, 2021 Author Share Posted April 14, 2021 That sounds like an interesting idea. BTW: I am still working on the code to make it more versatile. Quote Link to comment Share on other sites More sharing options...
CPUWIZ Posted April 14, 2021 Share Posted April 14, 2021 46 minutes ago, Karl G said: As I mentioned on the stream, I was wondering about adding this to my WIP Penult as a way to dump diagnostic info to the screen in case someone encounters an issue while testing on real hardware. If e.g. Select was pushed, the game could jump to a routine that copied some important variables and the value of the stack pointer to the area of RAM this code isn't using, and display them in the form of a QR code or two. That way, testers could send me a picture of their screens, and I could use that to help diagnose issues. I don't know how often this would be useful, but it seems like an interesting idea at least. As opposed to displaying HEX values on screen? Seems like a waste of space and time IMHO. 2 Quote Link to comment Share on other sites More sharing options...
Thomas Jentzsch Posted April 14, 2021 Author Share Posted April 14, 2021 2 minutes ago, CPUWIZ said: As opposed to displaying HEX values on screen? Seems like a waste of space and time IMHO. Definitely. But much fancier. Quote Link to comment Share on other sites More sharing options...
+Karl G Posted April 14, 2021 Share Posted April 14, 2021 22 minutes ago, CPUWIZ said: As opposed to displaying HEX values on screen? Seems like a waste of space and time IMHO. Bah. I suppose you are right - even just 3 lines of HEX digits for a 24 character text display would display more variable value on the screen at a time. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.