... also known as Quest For Glory 1 (EGA)
The land of Spielburg is overrun by monsters and terrorized by brigands. The people cower in their town, waiting for their hero to arrive. One day, a young stranger enters the town and learns of the people's plight. Armed with the ultimate spell, our hero leaves to confront the leader of the brigands. None shall be able to withstand the power of OOOOPENNN!!
Game Objectives
- To become a Hero!
- Aims for fastest time
- Emulator used: JPC-rr 11.2 (Modified for added mouse support)
- Game Version 1.0.0
Changes
This is a one second improvement over the previous submission, mostly thanks to FractalFusion's suggestions that:
- Text input should be "entered" by clicking on the input bar, not by pressing the enter key.
- You can stack nouns. In most cases, if the first and last words are correct, it will work.
Between these, and discovering you don't have to "Push" the rock, you can just "Get" it, 1.8 seconds is shaved off the previous run. Unfortunately, for some reason, it seems the last screen steals those 0.8 seconds away, with Elsa waiting longer now to hop the desk than she did before. I even went back and removed typing a name, which bought another 0.3 seconds, but that just made her wait equivalently longer to hop the desk. My only guess on that is that she may only be able to hop the desk on at the end of a full second, but I'm not certain. Below is the code for this, and I'd appreciate if anyone can add any insight to this added wait time:
(instance leaderVaults of Script
(properties)
(method (doit)
(if
(and (== state 1) (== (elsaSong prevSignal?) 10))
(self cue:)
)
(super doit:)
)
(method (changeState newState)
(switch (= state newState)
(0
(leader setLoop: 4 setCel: 1 posn: 164 122)
(= seconds 5)
)
(1 (elsaSong play:))
(2
(User canInput: 1)
(leader setCel: 2 posn: 164 120)
(= cycles 2)
)
The goal is to get to that "(User canInput: 1)" as fast as possible, so the final commands can be entered.
TAS Script
Although it's disappointing not being able to squeeze more than a second out of this, that wasn't really the main point in redoing this run. My actual goal was to test out a new scripting system I set up for editing JPC-rr movie files. If you haven't used the emulator before, JPC-rr files are notoriously bad for trying to edit or patch. The main reason for this is that they store commands with very specific relative time increments, which can vary seemingly arbitrarily. Changing one of these can have huge cascading effects, causing errors and desyncs all down the rest of the movie.
Example:
+87008950 SAVESTATE ca11a6f0219e1c4e48461de8b5641fca6ee5bfc0dc42ae0c 3
+14268150 SAVESTATE 1ac0e82719240fc23c8222406999edb018d8463475ef46b4 4
+55220 org.jpc.emulator.peripheral.Keyboard KEYEDGE 28
+666660 org.jpc.emulator.peripheral.Keyboard KEYEDGE 28
+614031020 SAVESTATE b6200e347c52b8ceeecc66dd64b47ab13b3dc878f66eece4 4
+13044500 SAVESTATE 78314316d124332100e7d03ea6705f0b90cbe47b229e2c54 4
+0 SAVESTATE d3d78c36ed464e355691fbe346b3d2057de3277fb28833a8 11
+0 SAVESTATE 83a31f8ee5f07ef4a95ba118cb39feff85f7ae11b0afe868 15
+51542 org.jpc.emulator.peripheral.Keyboard KEYEDGE 66
+666660 org.jpc.emulator.peripheral.Keyboard KEYEDGE 66
+666660 org.jpc.emulator.peripheral.Keyboard KEYEDGE 21
+666660 org.jpc.emulator.peripheral.Keyboard KEYEDGE 21
+666660 org.jpc.emulator.peripheral.Keyboard KEYEDGE 28
+666660 org.jpc.emulator.peripheral.Keyboard KEYEDGE 28
+666660 org.jpc.emulator.peripheral.Keyboard KEYEDGE 21
+666660 org.jpc.emulator.peripheral.Keyboard KEYEDGE 21
+666660 org.jpc.emulator.peripheral.Keyboard KEYEDGE 28
I decided to try and do something about this, and wrote some lua scripts to make the movies more readable and manageable:
FAdv:3
Type:<lctrl>cc<lctrl>ooppeenn<enter><enter>
FAdv:42
Save:801
FAdv:6
Save:816
Type:<esc><esc>ggeett rroocckk<enter><enter>
FAdv:8
Save:817
MXMove:-54
MYMove:29
FAdv:1
MClick:0
FAdv:1
MClick:0
FAdv:1
MXMove:64
MYMove:-40
I've
posted the details in a forum post, along with the lua scripts. The end effect was that it only took me about eight hours to refactor all the text submissions with mouse clicks, make two text entries more efficient, and remove desyncs. Doing that from scratch would have taken me 3 - 4 times as long. Then, when I found out about the desk hop limitations, it took me only two hours to edit out the name entry at the beginning of the movie and remove desyncs.
I'm now gunning to refactor my Quest for Glory 2 TAS where I made some critical errors, and I'm sure the refactoring will go more quickly as I get more and more practice with it.
Files:
HDD, 16 tracks, 63 sectors, 16 sides.
Filename | Size | MD5 | Timestamp |
---|
ADL.DRV | 8896 | b2b4afb47ab5bc94d5bdd63b38b62659 | 19900101000000 |
CGA320BW.DRV | 2017 | 67237a44391ea20481cd85bf3dd39620 | 19900101000000 |
CGA320C.DRV | 2376 | 5a8ab7f0b418cb2b4e37dfb0c1b5082e | 19900101000000 |
CMS.DRV | 5807 | 8d5ad9b51c0c6b82a7abbcf13fe1b0b4 | 19900101000000 |
CSM1.DRV | 2532 | da85de05261fd24096dc6b1e7ae96079 | 19900101000000 |
EGA320.DRV | 1952 | d2f9e9ea730745558926518c930e7375 | 19900101000000 |
EXISTS.COM | 574 | 61f35eec8998802abe2118b26e0c9cfa | 19900101000000 |
FB01.DRV | 2459 | fa73279cd317612f802a1609f6ea283c | 19900101000000 |
GODIR.COM | 507 | 28d7efe8c850bfb52231fc58567e25cc | 19900101000000 |
HERCMONO.DRV | 2193 | f548ada27461194ed2671b8a236e666a | 19900101000000 |
HERO.BAT | 10 | 04a413f79a5e15bcad59ae5d39824694 | 19900101000000 |
IBMKBD.DRV | 446 | ab91b093a010aeb63866f71bc491110e | 19900101000000 |
IMF.DRV | 2290 | 1b495562c5d107a0577f39ad1dcc6066 | 19900101000000 |
INSTALL.EXE | 24064 | a5a151689bfc0d0c5ab3ee61ff2f90ba | 19900101000000 |
INSTALL.HLP | 9698 | 7a0925b0cf9d429c4d598ecc774e1685 | 19900101000000 |
INSTGAME.BAT | 837 | 83cd6f1fd6df591e15a2df654da4b601 | 19900101000000 |
JOYSTICK.DRV | 536 | 865fd157f28915c8c831c17ac8b55ed1 | 19900101000000 |
JR.DRV | 2990 | 5195148b419497549252ca91d491ff66 | 19900101000000 |
MCGA320.DRV | 1626 | 7ced0fc0a7cc5395a1e4321250fcd943 | 19900101000000 |
MT32.CFG | 75 | c6b0d4b6e526a04134c74c82b8032c57 | 19900101000000 |
MT32.DRV | 3099 | 07664f7d1fab316cf10c433c6b4e1fb7 | 19900101000000 |
MT540.DRV | 2528 | 686177937d356346279f4cc582645eb6 | 19900101000000 |
PCJR320.DRV | 1660 | 307e67dbdf6289bf7e0488030f4442af | 19900101000000 |
RESOURCE.000 | 80334 | e4f2ab5f2e0cf5c78a3c072ef1d0dea3 | 19900101000000 |
RESOURCE.001 | 462727 | 308503aa041ff254197d561dba3b5063 | 19900101000000 |
RESOURCE.002 | 646869 | 67f08692e0457e84f81eed7143096190 | 19900101000000 |
RESOURCE.003 | 642203 | 14542d38474c3b36d0cedafbd8777caa | 19900101000000 |
RESOURCE.004 | 641688 | ba7c4ac121c40a125f0b871f7cb8709a | 19900101000000 |
RESOURCE.CFG | 74 | 4e14592928598a4736830af6c59418b3 | 19900101000000 |
RESOURCE.MAP | 6474 | cb0ba17773dff6eab9628ceeed2e3686 | 19900101000000 |
SB.CFG | 74 | 4e14592928598a4736830af6c59418b3 | 19900101000000 |
SCIV.EXE | 75027 | 9c902990be12e95e82e5845d390cd985 | 19900101000000 |
SIERRA.COM | 538 | 48e6faeb6af8e540fed0523f17ec4c0d | 19900101000000 |
SPACE.COM | 500 | c645587408e33998e9fc6f51be4ee639 | 19900101000000 |
STD.DRV | 2471 | b2f21c19f676932d09ffd8becd805334 | 19900101000000 |
TANDY320.DRV | 1667 | 6881cad03cd7386836cab4d19b03bdf7 | 19900101000000 |
TANDYKBD.DRV | 473 | d51176ceeae179f95ae478933591a0f2 | 19900101000000 |
__INSTH.BAT | 1009 | af4fc6a3f46cda7216cdb0b989314349 | 19900101000000 |