[HN Gopher] A MiniGolf game for Palm OS
       ___________________________________________________________________
        
       A MiniGolf game for Palm OS
        
       Author : capitain
       Score  : 317 points
       Date   : 2024-09-11 20:10 UTC (1 days ago)
        
 (HTM) web link (ctrl-c.club)
 (TXT) w3m dump (ctrl-c.club)
        
       | xnx wrote:
       | You need to promote this to projectionists so they can play it on
       | their IMAX systems.
        
         | 71bw wrote:
         | Care to explain? I'm obviously out of some loop here.
        
           | xnx wrote:
           | "IMAX emulates PalmPilot software to power Oppenheimer's 70
           | mm release" https://news.ycombinator.com/item?id=36817900
        
       | ASalazarMX wrote:
       | Wondering if I could run this on real hardware, I realized I have
       | no idea what happened to my Palm LifeDrive when I changed to
       | Blackberries. I miss that little chunky PDA. It was amazing for
       | its time.
       | 
       | https://en.wikipedia.org/wiki/LifeDrive
        
         | sodaplayer wrote:
         | I just came across my old Palm Tungsten E2 last week while
         | doing some cleaning. If I can also find its charger, I'll
         | report back on running it.
        
           | Zobat wrote:
           | I've come across my box of Palms a few times and had limited
           | success getting them going. Seems they don't like being in
           | storage for almost two decades. Really loved my Palms back
           | then.
        
             | memsom wrote:
             | I have both a PalmPilot Professional (with serial) and a
             | Palm m500 (with USB), the latter is a lot easier to pocket,
             | but the USB support is horrible in modern OS. I keep
             | wanting to get back in to Palm dev. I even managed to get
             | Pila to compile under macOS Catalina a few years ago.
             | 
             | I also have a stack of V-Tech Helio's, which is a PalmPilot
             | clone. I don't remember why I ended up with 3 of them, but
             | I got them to reflash the OS and never got around to it.
             | Their whole OS source code is available online. The
             | compiler is not easy to make to work these days though.
             | DJGPP and I think 16bit.
        
         | lxgr wrote:
         | The LifeDrive was such a weird Palm!
         | 
         | On one hand I hated it, for its infuriating loading times
         | compared to its predecessors (due to the hard drive spinning up
         | for ~every unexpected memory access of an OS designed for
         | having everything in RAM/ROM and literally no concept of
         | file/block based memory at first) and its relative bulk.
         | 
         | On the other hand: Four! Gigabytes! That could hold more than
         | two full movies! It was also my first Palm having Wi-Fi, which
         | was nice.
         | 
         | All in all, to me it was a symbol of Palm quickly losing touch
         | with modern developments: For example Symbian was miles ahead
         | from an OS point of view, even though usability was nothing
         | compared to Palm OS, and then there was the iPhone and Android,
         | of course.
        
       | cebu_blue wrote:
       | I love this and love the art design especially. Great job! The
       | only thing I would change persoanlly is that i think it feels
       | more natural to go in thge opposite direction with the mouse when
       | you're aiming. Many mini golf games on Miniclip used to do it
       | that way. Also if you're a fan of FOSS games i recommend
       | Neverball and Neverput which is a 3d golf similator with nice
       | graphics
        
         | aliher1911 wrote:
         | Original Palm was using stylus so you don't obscure where you
         | are aiming compared to finger touch phones and having more
         | space in the direction of shot could be the factors.
        
       | zzanz wrote:
       | Interesting project. I would say the issues had, memory leaks.
       | debugging, etc are a lot more common in game dev than you might
       | expect. Much of these problems have been abstracted away by game
       | engines such as Unreal/Unity/Godot, but if you were to go into
       | game dev with C, OpenGL, and a memory restriction (especially
       | when hardware enforced), you might run into the same teething
       | issues.
       | 
       | The level editor is a nice touch, I would be curious on the
       | implementation as something in the same vein existed for the Tony
       | Hawk series of games and was responsible for "Tony Hawks Pro
       | StrCpy" https://icode4.coffee/?p=954 . Though jailbreaking and
       | arbitrary code execution is probably a lot easier achieved via
       | PalmOS than a minigolf side project.
        
       | gwbas1c wrote:
       | The game is really fun when played in the browser-based emulator.
       | I nearly got sucked into practice mode.
       | 
       | IMO: I'd love a port (or otherwise inspired by) version for
       | Android / iOS / in-browser. It's really fun.
        
       | supportengineer wrote:
       | Great job! Just from the video I could tell this is fun. This is
       | what games are supposed to be.
        
       | teruakohatu wrote:
       | I have been using CloudPilot [1] to play a bunch of retro Palm
       | games on iOS. It works reasonably well. Hopefully a native
       | emulator will be released now allows emulators.
       | 
       | [1] https://cloudpilot-emu.github.io/app-preview/#/tab/sessions
        
       | kstrauser wrote:
       | This is beautiful! And now I'm nostalgic for my IIIxe. Through
       | the rose colored glasses of poor remembrance, that might've been
       | peek productivity in a handheld. It had enough functionality to
       | remember all the things I cared to have on my person at all
       | times, but was utterly lacking in notifications about
       | distractions. It took me a while to quiet my iPhone so that it's
       | not always pestering the hell out of me, but Palm was opt-in. If
       | you didn't tell it to tell you about something, it kept its mouth
       | shut.
       | 
       | I wouldn't actually go back if I could, but part of me misses
       | that.
        
         | freedomben wrote:
         | I feel the same. I loved my IIIxe. I'm guessing we'd be
         | horrified at the UX now if we could go back, but at the time it
         | was a huge boost in productivity. The handwriting language was
         | really great. I actually wrote papers on that thing! It was
         | great, I could work on papers while on the bus or travelling,
         | without having to lug around a laptop. Remarkable devices.
        
           | i80and wrote:
           | So I actually bought a Palm Classic device to test the
           | hypothesis that my memories are nostelgia.
           | 
           | They're not! It's actually a great UX!
        
           | kstrauser wrote:
           | I played with an emulator (https://cloudpilot-emu.github.io/)
           | recently and it's honestly not that bad at all. The
           | resolution is bad by today's standards but the basics are all
           | there. It even has a system-wide search that looks for the
           | input string in all your apps and lets you tap right into
           | those records. That's pretty handy!
           | 
           | I like my phone too much to go back, but if I _had_ to, I
           | could make do.
        
         | Telemakhos wrote:
         | Control over notifications is one of the most powerful UX
         | features available. I make extensive use of geo- and time-based
         | focus modes for the few notifications that I ever allow.
        
       | nanna wrote:
       | Is there an app store for palm is, or somewhere you can browse
       | different apps at least?
        
         | dmitrygr wrote:
         | PalmDB
        
         | eichin wrote:
         | https://archive.org/details/softwarelibrary_palm is a good
         | place to start (and you can just run them in-browser via
         | cloudpilot.)
        
           | nanna wrote:
           | Very cool !
        
         | lycos wrote:
         | Back in the day I think most people got their apps from the
         | PalmGear website (https://web.archive.org/web/20010331040533/ht
         | tp://palmgear.c...) and sync it to their Palm device via
         | HotSync (later Palm Desktop)
        
       | andrewshadura wrote:
       | It would be really cool if someone wrote something like WINE to
       | allow running PalmOS applications on Android.
        
         | dmitrygr wrote:
         | It would have similar problems to WINE, without nearly as many
         | developers who understand the bug compatibility required. One
         | project (pumpkinos) tried but there are many apps that don't
         | work in it. Emulation is easier. And accurate. Source: I
         | believe at this point I am the highest authority left on PalmOS
        
         | AshamedCaptain wrote:
         | https://styletap.com/
        
           | classichasclass wrote:
           | Unfortunately, apparently not compatible with Android 14
           | (there's a warning about this on the website). On my Pixel 7
           | Pro, it says "not compatible with your phone."
        
             | 71bw wrote:
             | Can be bypassed with ADB...                   adb install
             | --bypass-low-target-sdk-block apk.apk
             | 
             | ...albeit it still does not resolve the issue of whether or
             | not the app will run on 14/15.
        
       | xrd wrote:
       | The post suggests getting a real device. Where the heck do you
       | get a real device these days? Is there some retro hardware out
       | there? An open source project where you send out a PCB order to
       | Shenzhen?
        
         | flymasterv wrote:
         | eBay has new-in-box Zires for $10.
        
         | eichin wrote:
         | ebay; the hardware has lasted surprisingly well. (That said,
         | chrome on a recent samsung phone runs CloudPilot _very_
         | responsively, start here
         | https://archive.org/details/softwarelibrary_palm and you can
         | just click on things and run them...)
        
       | blackeyeblitzar wrote:
       | I am not very familiar with Palm OS, but I do like the idea of a
       | smart device that isn't a full on smartphone. Something like the
       | old Palm devices or the Pocket PCs from 25 years ago. Is there
       | such a thing today? What gets closest?
        
         | two_cents wrote:
         | BOOX Palma maybe? https://shop.boox.com/products/palma
        
       | JKCalhoun wrote:
       | Miniature golf was a game I began twice for the Macintosh back in
       | the 1990's but never ended up completing/shipping.
       | 
       | I've just recently been trying to recover my nearly 35 year old
       | sources and create disk images for use on an emulator. The first
       | B&W attempt at MiniGolf is here:
       | https://github.com/EngineersNeedArt/SoftDorothy-UnfinishedTa...
       | 
       | The second attempt (when I was a better programmer) was in color
       | ... will make it on Volume 2. (I'm currently trying to put that
       | disk image together.)
        
         | aresant wrote:
         | Glider was THE franchise of the 68k mac era, I am more than a
         | little starstruck, glad to see that you are back at it!
        
           | JKCalhoun wrote:
           | It's kind of for nostalgia that I am putting together all the
           | sources, artwork, projects, (tools) on a disk image suitable
           | for emulators. To me it has been fun trying to go through old
           | hard drives and find the "almost rans" like MiniGolf (and
           | later LiliPutz).
           | 
           | The shareware and commercial games (Glider, etc.) are on disk
           | images in other repos. (You should be able to find them
           | easily if you care to.)
        
         | ElCapitanMarkla wrote:
         | You have some amazing graphics there. Love the style
        
           | JKCalhoun wrote:
           | There is something about black and white pixel art....
        
         | InsideOutSanta wrote:
         | I played so much Glider as a kid. This is probably the only
         | opportunity I ever get to say this, so: thank you very much for
         | your games!
        
           | JKCalhoun wrote:
           | Thank you. I enjoyed writing it.
        
         | yard2010 wrote:
         | Thank you John! This repo has a little of everything I love:
         | art, engineering, history, but mostly art. It's truly
         | inspiring.
        
           | JKCalhoun wrote:
           | When I redid Glypha (an old shareware game I wrote) last year
           | for Steam, I decided to go with B&W pixel art for the game --
           | even though in other ways I bent to modern hardware (a larger
           | 16:9 screen size for example).
           | 
           | That B&W pixel art definitely was a defining feature of the
           | era.
        
       | post_break wrote:
       | I miss bike or die. For a while it was on iOS but didn't get
       | updates. I had hours in that game.
        
       | harikb wrote:
       | I have the Original PalmPilot, hardware upgraded to 3.0, as part
       | of a beta program. I also have a few Palm 3's. Is there a
       | compiled PDB available?
        
         | classichasclass wrote:
         | A Pilot 1000/5000 or the immediate model after?
         | 
         | Also, I think you meant a .prc.
        
           | lxgr wrote:
           | As far as I remember, the two extensions are mostly
           | interchangeable, and are only used as a convention to
           | indicate whether a given file contains an executable
           | application or data.
           | 
           | Palm OS doesn't really have a concept of files; everything's
           | a record-oriented database, containing either resources,
           | including executable code, or data. Palm Desktop would just
           | queue up every .prc or .pdb for copying during the next
           | HotSync. (I've never tested it, but presumably renaming a
           | .prc to .pdb and installing it would lead to it being backed
           | up as a .prc.)
           | 
           | For some reason, Mobipocket (which was originally a Palm OS
           | based ebook format) has landed on using .prc over .pdb for
           | their books, which are definitely not executable, so every
           | once in a while I stumble over a book with a .prc extension
           | and it annoys me ever so slightly - it'll work, but that
           | should be a .pdb :)
        
             | memsom wrote:
             | IIRC PalmOS prc and pdb are similar, in that they both
             | contain PalmOS data, but pdb was meant to just for data and
             | prc was meant to include executable resources too. PalmOS
             | borrows a massive amount from 68K Mac. Codewarrior used to
             | be the default compiler, and PalmOS uses resources in a
             | similar way - though the actual file format is different
             | IIRC. PalmOS apps are basically modified 68K Mac code
             | (library?) resources. There was a tool that converted
             | ThinkPascal generated binaries of whatever the type I don;t
             | remember was, to prc files. SARC was what it was called.
        
           | harikb wrote:
           | It was called Palm Pilot - the one pictured as the very first
           | image in Wikipedia [1]. It still works, except for some
           | bleeding/damage on a portion of the e-Ink screen. I probably
           | need to find the appropriate Linux based tools to load the
           | .PRC. I wonder if this [2] still works
           | 
           | [1] https://en.wikipedia.org/wiki/PalmPilot
           | 
           | [2] https://shallowsky.com/linux/palmlinuxdev.html
        
       | tomcam wrote:
       | Let me hijack this with a hate story about my wife and minigolf
       | games.
       | 
       | Back in 1996 she thought maybe she needed a hobby. She was a
       | housewife and we didn't have any children yet. She said maybe she
       | could do a game. At the time I was working in Microsoft C++ and
       | the Microsoft Foundation Classes framework, building Windows
       | apps. She had never programmed a language more challenging than
       | Turbo Pascal.
       | 
       | When she asked how long it would take to even get started, I
       | estimated about 18 months to learn C++ properly, another six
       | months to learn Microsoft foundation classes. The six months
       | after that to learn the windows API if she worked really hard at
       | it. At the time I thought maybe there was a place in the Windows
       | game market for a mini golf game.
       | 
       | She took less than a week to create a working, bug-free
       | prototype, but then lost interest.
       | 
       | I hate people like that! Everything takes forever for me to
       | learn.
       | 
       | Luckily she blessed me with a passel of pretty much bug-free and
       | absolutely hilarious children, so I'm giving her a pass.
        
         | smabie wrote:
         | If you're laser focused on a end product then learning can
         | happen remarkably quickly.
        
           | tomcam wrote:
           | Yeah no. I am an atrociously slow learner.
        
         | ok_dad wrote:
         | > bug-free children
         | 
         | I know you didn't mean anything by it, and it was a pretty
         | funny joke, but children with bugs are pretty cool as well :)
        
           | tomcam wrote:
           | SO SO TRUE
        
           | tomcam wrote:
           | Two of ours were born with severe handicaps but they are all
           | insanely fun and fabulously good company. Not sure why my
           | sibling comment was flagged.
        
             | HFguy wrote:
             | Love that!!!
        
               | tomcam wrote:
               | My parents made a big deal about how much of a
               | responsibility children were. I never dreamed my kids
               | would be so damn much fun.
        
             | tomcam wrote:
             | Excellent username btw
        
           | grimgrin wrote:
           | We call them features
        
             | tomcam wrote:
             | Couldn't agree more
        
         | al_borland wrote:
         | Is this the difference between learning and doing? You were
         | looking at how long it would take to learn all the foundational
         | technologies, once that was done, she could start to code the
         | game. Where she took the on-the-job-training approach. Work on
         | the project, run into a problem, learn enough to solve said
         | problem. Repeat until done.
         | 
         | I'm usually the learn before I start type as well, though I
         | find it doesn't really work for me in practice. It ends up
         | becoming a form of procrastination.
        
           | tomcam wrote:
           | She says much the same thing as you. I appear to be unable to
           | learn something without going to first principles.
        
         | darby_nine wrote:
         | > She took less than a week to create a working, bug-free
         | prototype, but then lost interest.
         | 
         | This is pretty common, no? Same reason why everyone thinks AI
         | will change development: people mistake the initial time cost
         | of building an initial prototype for being representative of
         | the total cost of making the thing people actually demand
         | (which mostly never happens).
        
       | urbandw311er wrote:
       | I love it! Quick suggestion: allow a moment to show the ball
       | dropping into the hole before loading the next level. It might be
       | frustrating denying the player that satisfaction.
        
       | snozolli wrote:
       | I wrote code for PalmOS back around '99. One thing that stands
       | out in my memory is the way that applications were tested. I
       | think it was a feature of the emulator, which would fire events
       | at your software. I forget the details, but if you could make,
       | say, 1,000 events without crashing, it was passable, 10k was
       | good, and 100k was excellent.
       | 
       | Well, I thought I was a reasonable competent C++ programmer and I
       | was _shocked_ at how quickly my application would crash using
       | this tool. It was an extremely humbling experience that really
       | opened my eyes. I often think of how effective that simple tool
       | was at revealing bugs, but it 's obviously not something that
       | works in today's multitasking, Internet-connected devices.
       | 
       | The other thing I remember is CodeWarrior being the first IDE I
       | used that had a drop-down box with all the functions in the
       | current source file. That was a pretty big step forward in
       | productivity.
       | 
       | Incidentally, I was still using a Palm Tungsten as late as 2010,
       | when I was in Japan. There was a very simple Japanese dictionary
       | application for Palm. Once you learn the basic rules for stroke
       | order and direction, you could mimic any character you see using
       | the stylus and do a dictionary search for matching Kanji. I was
       | able to figure out a lot of navigation just by mimicking unknown
       | Kanji that I saw on signs.
        
         | sgt wrote:
         | I just had a vision of someone trying to port Rust to PalmOS.
         | Let's hope that never happens.
        
         | JTyQZSnP3cQGa8B wrote:
         | > drop-down box with all the functions
         | 
         | I remember the "#pragma -" to separate the functions. We don't
         | have this anymore. As an alternative we have "#pragma region"
         | to fold blocks of code but it's different.
        
       | lxgr wrote:
       | Amazing work, thank you!
       | 
       | I'm starting to wonder whether Palm OS and other "retro" homebrew
       | executable formats might have their actual practical uses these
       | days, beyond the nostalgia:
       | 
       | I can run Palm OS .prcs, .gb homebrew ROM from itch.io etc. on my
       | desktop, iOS, and Android, as well as on physical gaming devices;
       | offline, efficiently, distraction-free, without any chance of in-
       | app purchases...
       | 
       | Take Apotris, for example: I've bought (and probably will buy) a
       | lot of official Tetris versions over the years, but here's an
       | incredibly slick implementation I can play on _all_ of my
       | consoles, or even on any computer without installation (thanks to
       | WASM-based GBA emulators like RetroArch Web and modern browsers
       | having native gamepad support).
       | 
       | Besides that, there's just something comforting with having a
       | single, self-contained executable that I know I can in all
       | likelihood run one, ten, twenty years from now - which is
       | probably not true for many iOS or even web indie games I
       | otherwise really like.
        
         | rkagerer wrote:
         | I would love a modern Palm OS phone, that's true to the
         | original UI philosophies and could run (even if just through
         | emulation) all my old titles.
        
           | lxgr wrote:
           | Take all of this with a big grain of salt due to rosy
           | retrospection, but I feel like a big appeal of Palm OS was
           | that going online was an intentional activity (if possible at
           | all; most of my handhelds had neither mobile data nor Wi-Fi).
           | 
           | As a result, it was completely distraction-free: I'd queue up
           | news/articles (via Plucker), mail, and books for the day,
           | HotSync in the morning/evening, and then that was it - no
           | chance of any notification (other than pre-programmed local
           | reminders/appointments) popping up and disrupting whatever I
           | was doing.
           | 
           | Other than that, there was still more than enough to do
           | ~forever: More Ebooks on a 64 MB MMC than I could reasonably
           | read all summer, the top 100? 1000? Wikipedia articles, the
           | CIA World Factbook as a PalmDoc, Space Trader... Ok, enough
           | with the nostalgia :)
           | 
           | (If this brought back a fond memory or two, head on over to
           | https://cloudpilot-emu.github.io/ right now!)
        
             | tsm wrote:
             | I _really_ like the idea of getting my day 's worth of
             | emails in the morning and responding to them throughout the
             | day while offline (using one of the great folding
             | keyboards!). Hard to emulate that these days though. It
             | feels artificial to put my phone in airplane mode or
             | whatever.
        
           | kalleboo wrote:
           | There is a guy who has gotten Palm OS running on modern ARM
           | hardware http://dmitry.gr/?r=05.Projects&proj=27.%20rePalm
        
             | unwind wrote:
             | You mean "a cluster of highly trained elite software ninjas
             | masking as one guy in public".
             | 
             | Eh. No, just kidding, of course, it's just that project^W
             | site has a huge Fabrice Bellard-factor to it. Very, _very_
             | impressive.
        
       | mjcohen wrote:
       | For the Amiga, one of my favorite games was "Hole-in-one
       | Miniature Golf."
        
       | xer0x wrote:
       | Wow, I can't believe this! That looks awesome!
        
       | DevScout wrote:
       | Great work! It's incredible to see projects like this still going
       | in 2024.
        
       | debo_ wrote:
       | I appreciate that you named the source directory `sauce` instead.
       | It's the little things that matter.
        
         | capitain wrote:
         | It should be the industry standard imo
        
         | sunnybeetroot wrote:
         | I think my OCD would prevent me from ever doing this :'(
        
       | Yhippa wrote:
       | This made me so happy. I'm going to go look for my Handspring
       | Visor now...
        
       | yding wrote:
       | As someone who interned at Palm, love this so much!
        
         | capitain wrote:
         | Oh wow, do you have any interesting stories from back then? Saw
         | some unreleased prototypes?
        
       | kleiba wrote:
       | Looks great!
       | 
       | Have you considered adding a "ball dropping into the hole"
       | animation? In the video, it looks like a new level is loaded as
       | soon as the ball and the whole overlap to a sufficient degree. I
       | think from a user's perspective, it would be much more satisfying
       | to somehow see the ball go in. It would give you more of a sense
       | of achievement before the next level is loaded.
       | 
       | What do you think?
        
         | capitain wrote:
         | I am considering it now, thanks!
        
           | kleiba wrote:
           | I also noticed that the collision detection is not always
           | perfect. Here's a screenshot from one of your videos where
           | the ball is rolling over the side barrier:
           | https://imgur.com/a/2tW1EOK
        
           | samatman wrote:
           | I would think that shrinking the ball circle to nothing would
           | do the job. Look forward to seeing what you come up with. ^_^
        
       | ricardobayes wrote:
       | Amazing game, gives the same level of excitement (and
       | frustration) as playing real mini golf. Thank you!
        
       | wingerlang wrote:
       | Once I got a Zire 31 with PalmOS for Christmas. It became quite a
       | fun treasure hunt to find free games and software for it. And I
       | say treasure hunt because it was like looking for gems among
       | piles of garbage as far as I can remember.
        
       | pantulis wrote:
       | This made me remember the Zany Golf bouncy burgers! The hours I
       | spent there!
        
       | geon wrote:
       | You should add a short celebration before loading the next level.
       | The "Loading" text feels very abrupt, like you did something
       | wrong.
       | 
       | Display something like the text "Nice!", and try to avoid
       | covering the hole, so that the player can see the ball
       | disappearing into the hole.
       | 
       | Wait just half a second before you show the loading dialog. You
       | can probably skip the loading dialog entirely if it is as short
       | as it looks like in the video.
        
       | dopp0 wrote:
       | Thanks for the memories. Good old times I was programming in
       | SuperWaba for palmOS!
        
       | HumblyTossed wrote:
       | This is really cool and brings back lots of memories. I've a
       | curious question for the game devs among you. One of the things
       | that makes put put fun is the possibility of a hole in one. How
       | do you make sure this is actually possible in a game like this?
        
       | msielski wrote:
       | Ahh good memories. I wrote Pente for PalmOS back in 2004 or 2005,
       | complete with a computer opponent using a minimax tree with
       | alpha/beta pruning. Unfortunately I never finished or released
       | it. It was so much fun to do early mobile development - it
       | compared to nothing else I'd done at the time. And it wasn't
       | easy. This is definitely an accomplishment.
        
       | ceedan wrote:
       | Having up and down slopes on the different holes would be an
       | interesting and challenging addition.
        
       ___________________________________________________________________
       (page generated 2024-09-12 23:01 UTC)