• 0 Posts
  • 234 Comments
Joined 3 years ago
cake
Cake day: July 5th, 2023

help-circle
  • This is amazing. I’ve been on a bit of a J2ME jag lately, and it can be difficult to find working copies of games, and then guess the requirements for running them. There are archives of dozens of copies of the same game, all with nearly identical file names, but each one has been tweaked for a different series of phones. Which file targets which phones? Who knows?!

    I loaded your .jar into my emulator and it worked first time. I had also seen this specific game and wanted to play it, but it seemed only to be available in Russian and Chinese.

    Thanks for all your hard work. It’s really appreciated!

    For anyone who’s interested in J2ME horror, I also recommend the Silent Hill Orphan series. There are three games that I know of; point-and-click first-person adventures with simple combat. I bought and played them on an actual phone back in the day, but I think they’re still good in emulation.



  • I presume that the code was tested for various cases where there was at least one previous password on record, but everyone forgot about new users with no previous passwords. However I’m having trouble imagining what the code could actually be doing.

    I can only imagine a dynamically typed language, and a “checkedPasswords” variable being declared but uninitialized, then a loop incrementing that variable for each non-similar password pulled from the records, and finally a check to see if checkedPasswords equals the number of stored previous passwords.

    The execution environment could type and initialize the variable by default after the first increment, but in the case of the user having no previous passwords on record that wouldn’t happen, and the final equivalency check would be comparing an integer to some internal “NaN” state, thus failing.






  • Initialization in C++ is so simple that somebody wrote a nearly 300-page book on the subject

    There’s a book about 101 ways to cut potatoes. Perhaps that could be a real mike-drop bit of evidence that we shouldn’t be cooking potatoes.

    Here’s a 249-page book “just” about atomics and locks in Rust. Does a book this large about only one aspect of Rust prove that it’s a terrible language? No, because as with the C++ book, if we look at the summary of contents we can see that it actually covers a great deal more, simply with a focus on those topics.

    Luckily we don’t have to be compete masters of every aspect of a language in order to use it.

    Honestly, I think that modern C++ is a very piecemeal language with no clear direction, and it has many issues because of that. But the title and page count of a single book is not a convincing argument of anything.


  • I’m all for humourous roasts of things, but does anyone really find this funny? Was the author possibly being serious? I don’t know. What I do know is that I stopped watching after the first four examples because they were all deliberately incorrect or misleading, but also didn’t seem funny to me.

    1. Crazy initialization
      That sure is a lot of ways to initialize a variable! Even though some of these variables are quite different and would be initialized differently from each other in many other languages, even only counting the initializations that are functionally equivalent, there are a bunch of abuses of syntax that I’ve never seen used in the wild.

    At this point I had hope that this was meant to be amusing.

    1. Printing to the console
      C++ has had a version of C’s printf function from the very beginning. That weird stream syntax has some hardcore fans but many people ignore it. I did my CS degree close to 30 years ago, and the only time I used stream syntax was for one lab class exercise in which we had to show that we understood how to use stream syntax.

    They still could be going for a comedy roast, I guess.

    1. Getting a random number
      Much like the printf statement for number 2 above, C++ had its own version of C’s rand function from the start. I’ve never even heard of the stuff that’s being shown in this part of the video.

    OK that was virtually the same fake point as the previous one, and still no punchlines in sight.

    1. Having to type “static_cast” every time you recast a variable
      Nope, you don’t. You’re free to ask the compiler to automagically recast your variables to another type without giving any further detail just like you can in C. In fact, they’re often called “C-style casts”. There are even implicit casts, where you literally don’t add anything, and just cross your fingers that the compiler does what you think it should do. It’s like a little bit of the thrill of dynamic typing brought into C++! By using the static_cast keyword, you can tell the compiler that you understand that there’s a potential issue with this recast, but that you expect that the standard way of handling it will be fine. There are other keywords for more unusual situations; it’s not just a random bit of busywork added for no reason.

  • Many years ago I lived alone in a small apartment, and I used to leave most of my consoles connected and kept them in a big shelving unit with my TV. But now I live in a house with my family and that’s not practical.

    At the moment I’m in the process of moving the consoles I still use to wide, shallow boxes with fully removable lids. Up until recently I laboriously unpacked and repacked every console when I wanted to use it, carrying armfuls of cables and equipment to wherever in the house I wanted to set it up. But now, I’m buying these boxes and transferring each system across as I use them.

    The idea is that I can leave everything attached to the console while it’s in storage, and then when I want to use it I can just take the box to whichever room I want to use, remove the lid, connect power and AV, and pull out the controller and go. When I’m done, it’s easy to disconnect the cables from the display and power socket, tuck everything back into the box, and put it away. This is almost as easy as leaving systems set up in place, plus it keeps dust and pet hair out of the equipment, which was a constant issue when I lived alone and left them all set up.

    You just need to find boxes that are long and wide enough to hold the console with all its cables and peripherals attached without putting undue bending stress on the cables. For older systems you need to be careful of height as well, for joysticks and so you can leave any top-loading flash carts plugged in to save the connectors.






  • E-SWAT and Crackdown come to mind immediately. Gain Ground. Contra. Atomic Runner. Bionic Commando.

    I’d recommend checking out some sort of catalogue of arcade games. You’re right, cyberpunk was big with gamers in the late 1980s, and there were dozens of games that had at least some cyberpunk theming.

    It depends very much on how strict you want to be. I’m not familiar with Cyber-Lip, but from screenshots it doesn’t look that much more “cyberpunk” to me than Two Crude Dudes. I would call both of them more “futuristic urban decay”, which I admit is hard to differentiate.


  • I have no expertise in this field and this is what I got just from reading the article without doing any further research.

    It seems that a consortium of giant tech companies got together to make a royalty-free video codec called AV1. This included getting legal agreements from a bunch of relevant patent holders that they wouldn’t pursue legal action against anyone implementing AV1.

    However, due to the U.S. patent office’s current policy of issuing patents left and right and letting applicants sort out whether or not their patents are actually unique in court later, lawyers representing Dolby and a couple of other companies that hold some separate video-related patents have smelled money in the water and are trying to sort out whether or not their patents are unique in court.




  • I sympathize with the point of the article, but if someone’s seriously citing Flash, which had widespread success for a run of about 15 years before being overtaken by later developments (driven in part by a billionaire with an axe to grind), as a short-lived “dead end” that was best avoided, then how long do they think is a sensible amount of time to wait to see if something’s worth spending time and effort? Nothing remains on top forever.


  • There was a period there just before the console was discontinued when they tried this style for some Dreamcast packaging in Japan; full-bleed photographs where only the little orange corner logo gave away the branding.

    It was wild for a little while after I moved here, picking through secondhand game stores and thinking I’d found some (to me) new treasure, only for it to turn out to be a common Dreamcast accessory in this style of packaging. One of the most unusual is the main console box with a photo of Sega’s President at the time, Hidekazu Yukawa. He was the “Public Face of Dreamcast” in Japan for a short time. But although it’s unusual, it’s not uncommon, and it contained a completely standard Dreamcast console.