HyperCard Simulator

Any discussion that doesn't fit into any of the other categories goes here.
Post Reply
lol_xD
Posts: 11
Joined: Thu Dec 08, 2022 7:48 pm

HyperCard Simulator

Post by lol_xD »

HyperCard is a software application and development kit for Apple Macintosh and Apple IIGS computers. It allowed owners of Macintoshes to create simple applications using a "card stack" metaphor and a scripting language that used plain English. This made it suitable not only for basic applications, but also rapid prototyping.

It was also used by the Miller brothers to create all of their games, including Myst, and I'm pretty sure the people who made HyperCard didn't think that would happen (or even anticipate HyperCard stacks being commercially sold).

When I learned about this a few months ago, I thought it'd be an interesting challenge to try and create both native libraries for working with HyperCard files, and a native application for emulating HyperCard. Progress has been slow, but my interest was renewed recently, and I wanted to post what I've done here to gauge interest.

- Based on the efforts of the HyperCard community, I created a Rust crate that (aims to) unwrap a Hypercard Stack into a Rust-idomatic struct. (Rust was chosen as the language here because it's just as fast as C, can compile to library files that can be used by C, and I don't like working with C/C++ and didn't want to use it). It's currently somewhat tested, but not enough for me to want to put it on crates.io just yet.
- I created a crate that wrap's around code from uliwitness's stackimport to allow decoding of WOBA images, and it has a random segmentation fault error and reminds me why i hate working with C. i didn't want to have to work with the god-awful WOBA format (literally stands for "Wrath of Bill Atkinson", named after the lead developer of HyperCard) but I also feel like its more worth it then trying to spend hours debugging something like this (especially when, to be fair, i didn't write the code i'm using).

The next step would be
a. actually show a basic window using the scraped information, making sure that i got the decoding library right.
b. find out where sounds are. HyperCard stacks supported sounds, but none of the reverse engineered documentation actually mentions where they're stored in the file.
c. start working on an interpreter for xtalk.

https://github.com/IoIxD/OpenCard/
User avatar
flatrute
Posts: 307
Joined: Sat Dec 17, 2022 11:32 am
Location: Thành phố Hồ Chí Minh, Việt Nam
Contact:

Re: HyperCard Simulator

Post by flatrute »

So...Apple Visual Basic? Thuink

Anyway, while I have no interests in anything for Macintosh or the platform itself at all, seeing such efforts to making old formats usable again on new platforms is always welcomed to me.
It turns out leaving an Internet identity behind is hard MikeBruh

My username is read as "flatorte".

[deleted] posts index

Avatar source
User avatar
MattKC
Site Admin
Posts: 323
Joined: Mon Aug 22, 2022 1:05 am
Contact:

Re: HyperCard Simulator

Post by MattKC »

Heh I'm so unknowledgeable about pre-OS X that, while I'd heard about HyperCard, I assumed it was a hardware thing like ExpressCard. I had no idea it was actually for software development.

Sounds like in theory, yeah it should be completely recreateable. A scripting language strikes me as pretty modern for the 80s, it would be very cool to see a reimplemented interpreter. I look forward to hearing more about it!
lol_xD
Posts: 11
Joined: Thu Dec 08, 2022 7:48 pm

Re: HyperCard Simulator

Post by lol_xD »

should've put "plain English" in quotes.
Image

if i had a nickel for every "plain english language" that's debatably plain english and ends up being harder on the programmer with a diminishing tradeoff, i'd have two nickels, which isn't alot but it's strange that it happened twice.

(in fairness there's supposed to be tabs here but i guess hypercard didn't save them).
User avatar
flatrute
Posts: 307
Joined: Sat Dec 17, 2022 11:32 am
Location: Thành phố Hồ Chí Minh, Việt Nam
Contact:

Re: HyperCard Simulator

Post by flatrute »

lol_xD wrote: Sat Jun 03, 2023 4:44 am should've put "plain English" in quotes.

Code: Select all

[img=https://i.imgur.com/ZAe3iUF.png][/img]
if i had a nickel for every "plain english language" that's debatably plain english and ends up being harder on the programmer with a diminishing tradeoff, i'd have two nickels, which isn't alot but it's strange that it happened twice.

(in fairness there's supposed to be tabs here but i guess hypercard didn't save them).
External image anchor detected! Please upload the image here directly to prevent link rot kcSmug

Anyway, in fairness, COBOL is a programming language used in business settings with arbitrary corporate designs put into it while HyperTalk is (according to Wikipedia) a result of an LSD trip that influenced the development of World Wide Web FreakingGonzo Looking at some examples though, HyperTalk looks a tad bit better since there are no nonsenses like IDENTIFICATION DIVISION and so on. As for the tabs thingy, I think it is a good sign for a programming language to be automatically formatted to its programmers. HyperTalk looks consistent enough to make it possible as a good syntax can reduce the need for code style guidelines and hence let the programmers be able to focus on other aspects.
It turns out leaving an Internet identity behind is hard MikeBruh

My username is read as "flatorte".

[deleted] posts index

Avatar source
lol_xD
Posts: 11
Joined: Thu Dec 08, 2022 7:48 pm

Re: HyperCard Simulator

Post by lol_xD »

Been busy with another project and also getting a job. Only update I have is that somebody HAS made a native emulator for HyperCard already, in Java, that's about 80% complete.

It also only runs with "./gradlew run" somehow (I can't get the compiled jar to work), and I'm unsure if I would want to contribute to a Java project (the "other" project i'm working on is literally something that makes it so I no longer have to work in Java when making MC plugins)

But it's there, I guess.

https://github.com/defano/wyldcard

It's good for me if i want to continue my recreation; I cannot get the file format code right so this is now a more cleaner code base that I can copy
Post Reply