Ragatron now supports Elliot Quest


  • Patron

    @richtaur asked for it in the last lostcast, so he got it!

    Ragatron v4.0

    Another game added: Elliot Quest by Ansimuz Games!

    Elliot Quest hack screenshot

    Elliot Quest is heavily inspired by Zelda II: The Adventure of Link. If you enjoyed that game, you will probably enjoy Elliot Quest. The game was built using the Impact game engine, which has been mentioned on several Lostcasts.

    Built-in Hacks for Elliot Quest

    The only supported build is Humble Bundle version 2015-03-25

    • Start with 16 hearts
    • Jump Higher
    • Stronger Arrow
    • Chest has 500 coins
    • Whirlwind is cheap
    • Flame is cheap
    • Rock is cheap
    • Ice is cheap
    • Expose Developer Tools

    @richtaur’s original gauntlet throwdown was to support Contradiction, but I could not find a non-Steam version. As a rule, I don’t target Steam because their anti-cheat engine could cause me to get banned – even if the publisher approves it. Also, indies (usually) get a better profit percent from Humble.

    I don’t think the challenge was to actually have this ready by the next lostcast, but I accepted the challenge that way anyway.

    Enjoy!

    BTW, if you’d like to contribute, Ragatron is open source!


  • LDG

    Oh, I should have posted my question from the other thread here instead.


  • Patron

    @geoffb , I’ll answer your question here.

    The short answer is that it used to be challenging, but since I did my massive overhaul back in February to use my XML-based system, it is now fairly easy to add a new game. Supporting Elliot Quest required zero updates to the engine, though I updated it anyway (small unrelated efficency tweak). I think it took about 3 hours to add the game, and most of it was reading all that “baked” JavaScript. I’m pretty familiar with Impact. I would’ve had a release ready by Friday, but I was out of town.

    The Ragatron engine now targets 4 games on 2 platforms, for a total of 8 unique games as far as the engine is concerned. There is some mild #ifdef MAC / #ifdef WINDOWS going on. Each iteration represented some small challenges. Considering that Elliot Quest required no engine update, I think I now have the various cases down. These are the parameters that differentiate the games:

    <md5>79b0f87d72859c46653550765b886987</md5>
    <app_nw_is_compressed>1</app_nw_is_compressed>
    <app_nw_is_hidden>1</app_nw_is_hidden>
    <app_nw_bytelocation>41409024</app_nw_bytelocation>
    <target>elliot_quest.exe</target>
    
    1. On Windows, most games compress and hide their engine code inside the exe (AWL, LB, EQ). GDT does not.

    2. On Mac, most games do not compress app.nw. AWL is the only one that does.

    1. One release of AWL moved JavaScript from index.html to a game.js. Fortunately, I had previously added a “target” flag on the hacks. It was originally so I could hit package.json:

      <hack>
      <category>Core Stats</category>
      <platform>all</platform>
      <id>fastSoulOrbCheck</id>
      <name>Fast Soul Orb Cooldown</name>
      <target>game.js</target>
      <search>soulCooldown:5e3</search>
      <replace>soulCooldown:500</replace>
      </hack>

    Anyway, the last major way I could streamline my effort is to have an easier way to separate the nw.exe from the app.nw zip file. I haven’t bothered. I have an inefficient script that finds it (looks for a zip header and tests if zip is valid), and my XML has a flag for the byte location. I only run it once, but I sometimes wonder if that barrier prevents others from submitting XML cheats.