On Cythera Savefile Hacking



  • Its limits

    Hello Cytherians,

    I see that Cythera hacking is having a bit of a resurgence. It's an area of some interest to me, as you probably know. Hacking save files is pretty fun, and you've done a lot of clever things with it - things that I never thought were possible when I was teleporting through walls and making doors to distant cities a number of years ago.

    However, savefile hacking has its limits, as you know. The ability to create novel things (as opposed to 'rearranging' existing content) is basically nil. In order to do that, you'd need to edit the scenario/data file, which is encrypted and therefore deliberately hard to edit, as opposed to simply obscure. This is not a suggestion that you should work on that problem: it is not worth your time.

    I'm sorry to say it, but Delver is dead. The Delver-based Cythera doesn't work on the current Mac OS, the Mac OS that it does run on does not work on any computer that has been available for sale in years, and serious technical issues make a change in any of these facts so remotely unlikely as to be considered a practical impossibility. Yeah, it's hard to accept that. It's taken me at least two years. Do you know who convinced me? Glenn Andreas. (Via email and also here, [http://boards.gandre...c.php?f=5&t=225)](http://boards.gandreas.com/viewtopic.php?f=5&t=225))

    It's not a pleasant reality. Many, possibly most, of us think of Delver as the pinnacle of classical RPG engines. It has many excellent qualities and is a laudable model for future game engines in some respects, but the existing code is not a place we should look for a creative outlet. The simple tricks and magic of Cythera hacking are amusing but don't change the basic facts: Delver-based Cythera is dead. A lot of time and energy is apparently going into this hacking stuff, but ultimately, you're wasting your talents.

    Most people know that you can electrically induce contractions of the muscles of a dead animal. If you give me a few months and some dead bullfrogs, I think I could make a controller that would stimulate the muscles electrically and make the ex-frogs hop about in a crude semblance of life. It would be novel for a bit, but let's not kid ourselves, it would be useless and at the end of the day, the frogs are still dead.

    Let's not end on that note.

    What can we do? Contribute to the development of RPG engines that would support a Cythera-like game. Look for an open-source RPG engine project that supports the kind of depth and realism that Cythera had, latch on and put some programming effort into it. Then, try to convince Glenn and ASW to either write a new Cythera game for it, or release the old Cythera media for use in it.

    I doubt that will happen, but at the end of the day you have a functional game engine either way, and I'm sure you can think of something you could do with that -- like most anything you ever wanted to do with the Delver editor that was never released, and more. Certainly more than you could ever hope to do with even the most advanced save-file hacking.

    If you are not yet a programmer, check out an O'Reilly programming book, sign up for an introductory computer science class at your local college, or go all the way and major it in at university. (Hey, it's a good field - even with the recession, every month recruiters come to the computer science department at the university I attend and buy CS majors free food.) Basic programming is not hard, and you can make a meaningful contribution to an open-source RPG engine project without an extensive education in the discipline.

    Anyway, just putting my two cents in. (As for me, I'm currently writing a multiplayer RPG engine in Python with three other developers. We intend to release it as open-source.) All that said, Cythera hacking is still a good learning experience for an aspiring programmer, but there are much higher-yield ones out there.



  • So... Cythera's a dead frog?

    <rant>You mentioned (being in the process of) making a new CRPG engine. This reminds me of an issue I'm running into more & more, I have a G3 PowerBook with FireWire that's getting close to a decade old. I can boot into OS9 if I feel like it, & Cythera runs quite well. I may be playing with an undead frog that's taking up unnecessary space on my computer, (I only have a few applications that I have to boot into os9 to use) But I can't play with a daemon frog either, my computer is only running osX.3.9, & all the programs that I've found that -sound- like they might work for me are either too expensive, or too advanced. Most require at least osX.4, many require Intel. & why make a program osX.3 compatible anyway? It's just an old frog, about to die... I'm not sure I expressed that how I wanted to >_> </rant>

    When do we get to findout the name & compatibilities of your engine?
    How easy will it be to make new stories for it?



  • QUOTE (Jehezekel @ Apr 2 2009, 06:18 PM) <{POST_SNAPBACK}>

    So... Cythera's a dead frog?

    Actually, Delver was the frog in this. Cythera (the imaginary world) isn't dead. Sorry, the electric zombie frog wasn't one of my better analogies.

    QUOTE

    When do we get to findout the name & compatibilities of your engine?
    How easy will it be to make new stories for it?

    Well, I didn't mean that you should necessarily wait for me to finish mine. It's really intended for multiplayer games anyway. There are other open-source engines out there that might be better suited to your project, and you should check them out too.

    If you're interested in the engine I'm working on, it's called Ostendi. (www.ostendi.org) It's more of a general game engine at this point, I'm yet to add much RPG-specific functionality. The idea is that the user should implement the game logic in the scripting language, Python. (You wouldn't have to do it from scratch, of course - you'd take the demo game we make with it and modify it as much or as little as you like.)

    To answer the specific questions: You know the name now, Ostendi. I am calling the default game logic (the code that encompasses HP, damage types, weapons and so forth) Tephra, but it isn't online yet. We developers will ensure that it runs on fairly recent versions of Linux, Mac OS X (specifically, 10.3+ on either processor) and Windows. I don't know if it will run acceptably fast on a G3 laptop, though. I think I got it working on my old 2x500Mhz G4.

    Regarding making new stories - the difficulty of writing an RPG really depends on the scope and your ambition more than the engine. As far as the learning curve, it's pretty steep if you can't program. It's coding required. Simple, codemonkey programming, but knowledge of the practical basics will be assumed. Perhaps someday a GUI editor will be written - I'm certainly planning to get a GUI map editor into the pipeline at some point, because I'm tired of making maps with a text editor. Don't worry about it, though - coding is not hard to learn. All scripting is in the Python language anyway, which is a very easy language for beginners.



  • So what's the point of this then, to state your opinion? If anything, the advancements in save file hacking have been a product of the love for Cythera that even you hold. Even if we were inspiried enough to spend time money and effort to become a programming army abd work on a new engine, where would we be without what made Cythera Cythera? I say keep disecting and fiddeling, because inside is the spirit of the game.

    Frankly I don't think anyone but you will ever have the motivation to re-create Cythera. At the point that you picture, a redone Cythera would most likely turn into a nice thought while new ideas took it's place. If we turn into game creators it is the spirit of Cythera that is important, not Cythera itself.

    I know how you feel, I have the same passion for Ferazel's Wand. Our situation is really similar with the major exception that I haven't touched programming. If I had the oppurtunity, I would make Ferazel universal, it deserves it. And Cythera does too for that matter. I hate how so many great games have disapeared because of compatability, and how so many bad games have taken there place. But this is how things turned out sadly. This isn't to say I've lost hope or anything. With Xsera and Avara X on the rise I know these hurdles can be overcomed. Avara X is being written from scratch, and Xsera has only come about because of Nathan Lamonts access to the source code.

    Pretty much the older ASW games are in this order (most likely to be updated to least likely):
    1. Ares (Tech demo already released)
    2. Avara (Video of gameplay released)
    3. Ferazel's Wand (Currently dead unless an emulator is worked up or sprite conversion is made to Aquaria along with some coding, always possibilty of enough source to be released for a port like Ares)
    4. Cythera (Game engine dead, has emulator, little to no chance of port, most likely going to have to be built from scratch or built onto an existing engine)
    5. Coldstone/PoG (Unsupported by Ubisoft, no chance of update)

    All we really can do is try, hope for an opportunity or move on. What we do here, in these boards, is in its memory.



  • QUOTE (Two Jacks @ Apr 3 2009, 02:29 AM) <{POST_SNAPBACK}>

    So what's the point of this then, to state your opinion? If anything, the advancements in save file hacking have been a product of the love for Cythera that even you hold. Even if we were inspiried enough to spend time money and effort to become a programming army abd work on a new engine, where would we be without what made Cythera Cythera? I say keep disecting and fiddeling, because inside is the spirit of the game.

    My point is to take notice of the "love of Cythera" demonstrated by save file hacking, and offer my opinion that it should be channeled into a more productive avenue: making an engine suitable for running a Cythera remake or successor. (Or, failing official support of that, at least ending up with an engine for which some other worthy RPG can be written.)

    QUOTE

    Frankly I don't think anyone but you will ever have the motivation to re-create Cythera. At the point that you picture, a redone Cythera would most likely turn into a nice thought while new ideas took it's place. If we turn into game creators it is the spirit of Cythera that is important, not Cythera itself.

    They seem to find the motivation to mess with save files for what must be hours on end, and for far lesser rewards, which is the basic observation that prompted this posting.

    I'm not really suggesting we create a Cythera fan game, I'm suggesting that we write an engine, try to get Glenn Andreas to write Cythera 2 for it (unlikely), then assuming that doesn't work, try to get Glenn/ASW to release the original Cythera media (graphics, sounds, music, text &c) and use that to recreate Cythera in the new engine, substantially unmodified. (Presumably, we'd fix bugs and obviously incomplete things like Fishing, but no new plot.) (Failing both those things, we still have a nice engine and can write a game with it.)

    QUOTE

    I hate how so many great games have disapeared because of compatability,

    The solution to that problem is open-source. That way, as long as someone cares enough to do it, the engine can be updated to support whatever OS/computer is currently in vogue. With an open-source model, one person or company can't control when a game goes extinct.

    In case you're wondering, it is also not the case that an open source engine could support only free games. It is entirely reasonable to envision a model in which the engine is open source, but the games are sold for profit.

    The obvious concern is that people would hack the open-source engine to bypass restrictions on demo versions of the games. Well, here's some news - they can do that with a binary-only engine too, it's just slightly harder. I think people who worry about this issue are forgetting that in order to get money from people, you just need to make it more convenient for them to give you money than the alternative of stealing your game. (As long as the price is reasonable.)

    As a scenario developer, I would actually find the advantage of knowing that my scenario will not suddenly become unplayable because of an apathetic proprietary engine developer to be much more significant than the disadvantage of 1% more people having the technical ability to bypass my shareware restrictions.



  • Just a little quick note for anyone who is intimidated by the thought of learning programming and writing a game: Jeff Vogel, the author of the Exile, Avernum, and Geneforge series of games, a successful full-time shareware developer, once said that Exile I was the second Mac program he ever wrote - the first was the Exile editor. (Having seen the source for Blades of Exile, that revelation is not particularly surprising, but the game worked, and that's what counts - not having lovely code.)



  • so much of that went over my head...

    but a couple things caught my attention!

    slim possibility of a Cythera 2 or a Cythera remake?

    I really hope so

    it's ever so frustrating that my favorite game is incomplete
    it'd be cool if you could fix the fishing and wine contract thing
    maybe somehow connect the tree of life area, but by the looks of it that would be adding to the story which you've stated wouldn't be possible

    touching on the other subject brought in this post, I'm really interested in the whole save file hacking thing
    I had downloaded a bunch of the stuff provided here but when I tried it out...it was just way beyond me
    it'd be cool if someone had time to teach me some stuff

    however I'm planning on minoring in computer science this coming fall
    if that will help me any at all

    it's 3 AM here so sorry if I sound like a complete loony
    I may or may not have missed the point of this post

    regardless, I am forever in awe of the amazing things you guys have done fiddling around with Cythera



  • I'm in favour of anything that involves working on Cythera!

    Personally, I find the thought programming extremely intimidating. I had to call a customer support number just to get my computer connected to the internet today @_@ I like to blame my ineptitude with computers on my gender, but geeky girls seem to take offense to that :\ However, I'd definitely support anyone willing to invest time in this programming feat in any way I could. I will offer annoying and continuous pestering for motivation to complete the project ^_^

    I'll also mention that I don't see why using a newer engine would be better than an older one. Soon enough, the newer one too will become obsolete. And although my computer and operating system are newer than Shorty's, I too fear that newer software will be incompatible with my system. I do not have excess cashflow to spend on continually buying new computers and OSs - in fact I find it ridiculous that anyone can actually afford to keep up with these technological advances.



  • QUOTE (BreadWorldMercy453 @ Apr 3 2009, 03:34 PM) <{POST_SNAPBACK}>

    I'll also mention that I don't see why using a newer engine would be better than an older one. Soon enough, the newer one too will become obsolete.

    Not if it is an open-source engine: with an open-source engine, as long as enough people remain interested in the game that there is a programmer among them and s/he cares enough to update the engine, it will not become obsolete. The game itself may become dated, in the sense of having poor graphics or effects in comparison with more recent ones, but it won't stop being playable for technical reasons.

    So as long as the new engine is open-source, this is not an problem. This is not a theoretical speculation - in fact, several classic games have had new, open source engines written that use the original data. Sometimes the original authors even release the old data for free download so that the (no longer published) original game is not required.

    This post has been edited by Bryce : 03 April 2009 - 11:35 AM



  • Or take the plethora of Rogue-like games as an example; Moria, Angband et al, nethack... I first played MacMoria on a Macintosh SE probably over 15years ago, & I've recently been playing Steamband, a steampunk remake of Angband, & even went so far as to start work on a ridiculously overpowered player option, (insane stats, but never could figure out how to have any abilities)

    Low-level hacking I'm cool with, but a "cheat-sheet" goes a long way toward helping me.



  • QUOTE (Bryce @ Apr 2 2009, 05:59 PM) <{POST_SNAPBACK}>

    Sorry, the electric zombie frog wasn't one of my better analogies.

    But it was one of the more entertaining!

    In all seriousness, I must admit that I was at first confused by the purpose of this topic. It seemed as though you were telling people to forget about Cythera. I think I understand your meaning now. You want people to forget about expending energy into editing the original Cythera game. It's never going to be released as open-source and working on the save files only raises false hopes.

    I agree for the most part. We have been aware of the limitations on save-file hacking from the beginning. Any changes made are limited to one save file, taking away a player's ability to select name, character class, etc. And no new information can be added to the scenario itself. The best that could be done would be terrain changes and/or removal of extraneous plot elements, but the game itself would be significantly unchanged for the amount of work that that would take. I think Selax has continued to pursue it simply because he enjoys it.

    The problem with our developing a new Cythera-esque game is that I don't think most of us have coding experience. Xsera is happening because of a committed fan-base, with the right knowledge, tools, and files (due to Nathan Lamont's generosity). Cythera has the enthusiasm and support of its fans, but beyond that, I don't see what we can do.

    Don't get me wrong. I would love to be a part of a new open source game, especially one that was Cythera themed. I could try to help graphically, since that is where most of my computer skills are and limited at that, but right now, I don't think we have coders to start such a project. I will be taking a few classes on programming in a couple of semesters, though.



  • QUOTE (The Wizard @ Apr 4 2009, 07:37 PM) <{POST_SNAPBACK}>

    In all seriousness, I must admit that I was at first confused by the purpose of this topic. It seemed as though you were telling people to forget about Cythera. I think I understand your meaning now. You want people to forget about expending energy into editing the original Cythera game. It's never going to be released as open-source and working on the save files only raises false hopes.

    The real meaning is exactly what he said: Delver is dead. Although, to some extent, I would come to the opposite conclusion from that; save-file hacking is still interesting. We can't read the Cythera data files, and probably will not be able to without gandreas's cooperation, so the only real way to introspect into Cythera itself is to bypass the engine.

    Another way to try to decode the data would be to take full-process memory dumps and compare them (somewhat like Pandora's Box but obviously wider in its scope). That kind of wholesale excavation could potentially unveil a lot, but it's obviously a far more difficult task than tinkering and observing results. Could be a lot of fun, though ;)



  • Were I not convinced that the time would be best spent on other endeavors, I suppose the logical thing to do would be to have a crack at the datafile encryption. The Classic Mac OS system calls for file reading are obviously all well-documented and 68k machine language is not exactly a profound mystery either, so it should be simple (day's work, tops, unless the author has been deliberately crafty) to deal with it.

    Well, hmm, I guess it wouldn't be a totally useless thing to do, since it would also enable the creation of an updated "delver compatible" engine directly, setting aside the issue of registration (which is not insignificant.) Alternate engines usually do not draw the ire of the game developers because you need a copy of the full version to play them, but in this case the full version data is available online for free, with only the registration system enforcing the restrictions. I doubt Cythera is getting a significant number of registrations anymore, but I'd be wary of stepping on anyone's toes if anyone decides to go that route.



  • I don't think I understand this last bit.

    Are so talking about changing Pandora's Box to include more options? Maybe it's just the phrases, "bypass the engine" and, "memory dumps" that threw me off.



  • QUOTE (Two Jacks @ Apr 5 2009, 03:20 AM) <{POST_SNAPBACK}>

    I don't think I understand this last bit.

    Are so talking about changing Pandora's Box to include more options? Maybe it's just the phrases, "bypass the engine" and, "memory dumps" that threw me off.

    No one is talking about changing Pandora's Box. In fact, I don't think it enters into this discussion at all. I've never used it.

    Think of Cythera as two things: The Delver Engine, and the Cythera Data file that it uses. You know how you have a text editor, and text files? Delver is like the editor, and the files are like the Cythera Data file. Right now, the only way to play Cythera is with the Delver Engine, and the only existing file for the Delver engine to play is Cythera Data.

    Since the Delver Engine (that thing called "Cythera" you click on) doesn't run on any current computer, it would be nice to have a different program to play Cythera with. That's the gist of this topic, more or less; discussing various ways of finding a way to play Cythera not involving the Delver Engine.



  • QUOTE (Two Jacks @ Apr 4 2009, 09:20 PM) <{POST_SNAPBACK}>

    I don't think I understand this last bit.

    Are so talking about changing Pandora's Box to include more options? Maybe it's just the phrases, "bypass the engine" and, "memory dumps" that threw me off.

    No–Pandora's box lets you find single pieces of data in a running copy of the game and compare them; my thinking is that if you were to look at all of the data in a running game at once, you would have a decoded version of some portion of the Cythera data file.



  • What is the utility of that, though? Except as it might provide insight into the nature of the data file, it wouldn't be very useful, since any changes you make are going to go away when the program quits.

    I suppose you could get the data out, if you only goal is to dump the content somewhere, but it would be very tedious, I'd think.



  • So what's easier/more likely: a modern data file or modern engine?

    Edit: Or are both pretty much out if the question here, and if so where does that leave us?

    This post has been edited by Two Jacks : 05 April 2009 - 09:23 PM



  • QUOTE (Two Jacks @ Apr 6 2009, 03:22 AM) <{POST_SNAPBACK}>

    So what's easier/more likely: a modern data file or modern engine?

    Edit: Or are both pretty much out if the question here, and if so where does that leave us?

    On its own, a new data file would be pretty useless, since you'd need the vintage-1999 Delver to play it, and it doesn't run on current computers.

    The best bet is, in my opinion, writing a new Engine that is suitably Delver-like and porting the old data to it. That would also open up the possibility for "new data files" that people would actually be able to play.

    Legal questions aside, we can't unilaterally make a new engine for the old data file because its format is undocumented. (The text and scripts are also encrypted, and there is some compression going on there as well, although if you look at the data file in a hex editor you can identify plenty of low-entropy regions you could hack on if you wanted.)

    If we could get official blessing for making a new engine, however, it would be pretty easy. Writing an RPG engine is actually pretty fun. Somehow I doubt there is an "Inside Delver" comprehensive documentation, though, so practically speaking the authors of the new engine would need the source code of the original if they were going to use the original Cythera Data, or, indeed, any of the original content in the Data file. (Well, I guess you could gather up all the stuff that went into making the data file in standard formats, or take them from sound recordings and screenshots, but I wouldn't sign up for that.)

    I suppose if I were doing it, I'd move toward a more comfortable file format for the data, probably a standard archive format or the one I am using for Ostendi which is designed exactly for this sort of thing and also supports reading in a directories-and-files "Data Folder." It makes writing the editor much more pleasant too, as compared to having an editor that works directly on a massive binary file. If the graphics were all in, say, png, you wouldn't need a custom sprite editor in the editor, you could just edit them in Photoshop or GIMP or whatever; edit scripts with your favorite editor, &c.

    Things have changed a lot in ten years with respect to computer power, network speeds, and the like. For example, Delver makes pretty extensive use of palette-based animation for water, lighting etc. Nowadays nobody does this, chiefly because nobody uses 256 colors anymore, and it is basically a clever hack to save memory/file size. But if you were going to go for full-on binary compatibility, you'd have to deal with that kind of stuff in your new engine. On the other hand, if you were moving the data to a new format, you'd only have to deal with that during the porting (perhaps creating a utility program to generate 32-bit PNGs of each of the palettes applied to the image, in the case of the example above).



  • I once tried to write a short Colossal Cave Adventure-like game in Applescript... I failed. Then I tried to make it as a batch program & failed worse. I couldn't even manage a single-diversion walk-through.... then I got bored & stopped trying. '_'

    At this rate, I don't see how I'll ever make anything even half as complex as Exile, let alone Cythera, & I'd like to make a game that integrates altitude, one in which you can "feel" the giantness/diminutiveness of your character, & whether they're walking or flying. I guess that's part of the appeal of games like WoW (which I've only played about as much as iKaterei has played Cythera)

    I guess my point is that writing a simple RPG might be easy for you, but some of us have a hard time getting past:

    CODE

    10 print "Hello World"
    20 goto 10


Log in to reply