• 0 Posts
  • 12 Comments
Joined 1 year ago
cake
Cake day: July 3rd, 2023

help-circle
  • In addition to “format shifting,” which is a well-recognized use case, and game preservation, which is a huge and under-recognized public interest in emulator development, emulators are also used for the development of homebrew software. E.g., there’s a port of Moonlight for the Switch, which lets you play Steam games streamed from a PC using your Switch, letting it serve many of the purposes of a Steam Deck. That’s huge! It would be way less practical to develop this kind of software if you could only test on real hardware. Testing on real hardware is also essential, of course, but testing on an emulator is vastly faster for rapid iteration.




  • It looks to me like they did it this way so that it could have natural-language names in many languages. So, the function Z10096 is called “is palindrome” in English, but if you’re coding in Japanese you can call it “回文の判定”. I don’t think the idea is for people to refer primarily to the alphanumeric soup version; I think that’s just the unique identifier for the database.

    It does look like it’s leading to some issues, though. E.g., someone added a test for the “is palindrome” function which uses a somewhat common example: “Straw? No, too stupid. I put soot on warts.” Now, a human would probably say that this is a palindrome, because it’s got the same letters forwards and backwards, but most of the implementations disagree, because they consider the spaces, capitalization, and punctuation to be part of the string; that is, they test whether the input string and its reverse are equal. So someone (possibly the same person) has added a second python implementation which ignores spaces, capitalization, and punctuation, and mentions that in its name on the page.

    Fundamentally this function is solving a different problem than the others (as demonstrated by the differing results on the relevant test), so should it get its own number and page? should there be a “palindrome disambiguation” page? This seems like something the site will have to figure out how to handle.


  • Turbo Pascal was the first language in which I had serious classes (I had tutoring in Applesoft Basic earlier on, but that language has a lot of limitations), and I used it for years afterwards. You could write auxiliary functions in Turbo Assembler and link them in; I used that to write a library that allowed access to the 320x200 256-color VGA mode (the built-in graphics only did EGA and were super slow), and other libraries for mouse and joystick control. I tried to control the soundblaster for FM synthesis, but it was too complicated for me to figure out how to do anything useful without better access to documentation (this was before the world wide web). The experience also taught me a lot about assembly language basics, function calling conventions for C and Pascal, stack manipulation, and so forth, which gave me a huge head start in my compilers courses at university.

    On the whole I would still recommend C over Pascal as an early language–it gives you much better insight into memory layout and so forth, where Pascal kind of obfuscates such things, and C just generally kind of acts like both Pascal and Assembler rolled together. But Turbo Pascal definitely gave me a good foundation.