Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Questions =) #2

Open
ischorr opened this issue Feb 26, 2020 · 2 comments
Open

Questions =) #2

ischorr opened this issue Feb 26, 2020 · 2 comments

Comments

@ischorr
Copy link

ischorr commented Feb 26, 2020

Great job with this, works really well still in 2020 even if incomplete.

I know you haven't worked on this in a while, but ran into this while noodling around with another project - I actually ended up modifying this to dump all the resources and all the images into ppm format (then convert to gif with alpha channel), and browse through the various scenes available, etc.
You made it surprisingly easy to do that.

If I wanted to contribute some changes are you interested and have a little time for questions? I'm curious what problems you ran into (or what your plans were) for adding the narrative code and randomizing scenes/etc.

@ischorr
Copy link
Author

ischorr commented Feb 28, 2020

I do have a few things to potentially push at this point if you're interested in other contributors, btw. A handful of fixes, a couple cleanup things, and a suggested minor improvement to the startup.

I could contribute more too if you're interested. Some things:

  • Like I was saying, I'd added some code (or modified a little of yours) to dump the various ADS/TTM/BMP files in both compressed and uncompressed format. And some code to dump each image/sprite in each BMP. And like I said, some code to write out each individual image as a ppm file, which is easy to convert to other modern image formats. It was useful to me for debugging and understanding how things work, figure someone else could use it too. I could maybe clean that up and expose them as CLI or menu options maybe.
  • Some CLI options for extra debugging info - again, would have been really useful to me getting started, at least.
  • Come up with at least some BASIC logic for playing scenes in some random order, and weighting certain ones (like the mundane ones) to play more often, a bit like the original.
  • Obviously would be nice to implement/extract the original logic for selecting scenes/movies and animating Johnny between them. And the original logic for playing the "special" events and the 10-day storyline loop. Was curious if you'd done any research/work on that - assume most of that logic was actually handled in the SCRANTIC.SCR executable, and doesn't seem like anyone's made any headway on extracting any of that logic (not sure I could help much there either, but would be good to talk about it with you)

@bailli
Copy link
Owner

bailli commented Mar 10, 2020

Hey, I appreciate your support :)

As it happens I started to look into this project again (indeed partly because of your post). Since it has been some time, as you mentioned, I started by reformatting the source code and also doing some refactoring starting with the "BaseFile" classes to better fit my current code style. My goal is (and this is basically where I left off last time) to build a small tool to completely unpack and pack the resource files.

The reason for this is, because I feel running the original application with modified scripts is the best way to research the remaining missing functionality. I tried to disassemble the original binary, but I am not experienced enough to learn anything meaningful. Deducing commands from patterns and by watching the original scenes is a mostly depleted source, too.

So this also mostly answers your first question. My priority is to fix the actual movie player before connecting the scenes. Partly because I suspect that "STAND.ADS" contains part of the original logic, but I don't understand large parts of its code.

About your contributions: Feel free to publish your changes on your fork (this is open source software after all). If I will merge your changes, I don't know. Partly because it probably needs some changes after my refactoring before a merge is possible. And partly because I may feel it adds unnecessary features (at least at this stage). 🤷‍♂️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants