PDA

View Full Version : GOG's Jazz 1.3: Fix bugs, add versions


Simon
Jul 21, 2020, 01:21 AM
Hi,

according to maxen7 in twitch chat, VioletCLM is considering to work with GOG about bugfixing GOG's Jazz 1. Thus: VioletCLM, is there something in the works here? I'll be happy to help where I can.

GOG distributes Jazz 1.3 and Holiday Hare 95. See my version comparison table (http://lixgame.com/jazz/versions.html).

Possible fixes for Jazz 1.3:

Fix the near-impassable Orbitus 2 bouncy section. The Jazz 1.3 executable (not the level file) enlarges the bouncy floor trigger areas. If GOG keeps 1.3 executable (reasonable), you can modify the level layout, e.g., with MaxStrike's patch (https://drive.google.com/file/d/1qdhNHKFE-0euQ22hndXV2q3nw3ufZp-q/view). This adds solid golden bars to the underside of triggers that suck Jazz upwards. GOG users approve (https://www.gog.com/forum/jazz_jackrabbit/orbitus_level_2_is_impossible_to_beat_in_jazz_jack rabbit_1_cd).
Fix the broken airboard ditches in Medivo 1, Turtemple 2, Pezrock 2. These are also bugs in the executable; the same level files produce working airboard ditches with a 1.0 executable and broken ditches with the 1.3 executable. Can these be fixed by changing the level files? I'm not knowledgeable enough in the Jazz 1 formats. At least Jazz 1.3 can ditch airboards in other levels successfully, e.g., in Battleships 1/2.
Binary-patch FILE0001.EXE to print a different version string during start than: Welcome to Jazz Jackrabbit. version 1.3 -- Reason: With above changes, it's not 1.3 anymore, and should not identify as such. The string sits in clear text in FILE0001.EXE, beginning at 0x3007. You can put anything that matches the original's length, e.g.: Welcome to Jazz Jackrabbit, v. GOG 0002
Ship an unmodified 1.3 as an extra. Reason: Third-party-patching their main version is a significant change and drops files from an unmodified 1.3. GOG prefers to ship several versions if they exist.
Ship an unmodified 1.0 as an extra. The 1.0 runs well right out of the box, all levels are passable. Jazz 1.0 is fastest for speedrunning Episodes 1-6: You can fit though Orbitus bouncy floor cracks, and 1.0's Dreempipes water lowers more slowly than the water in 1.2/1.3. GOG prefers to ship several versions if they exist.
Possibly ship an unmodified good 1.2; this has the longer Tubelectric 2 and thus adds content.
Maybe even ship a bad 1.2, purely for completeness.
Maybe even ship a 1.1, purely for completeness.

Any extra versions need not be selectable from GOG's launcher within DOSBox. 90 % of players won't want any choice, they want a version that works, where they won't get stuck in Orbitus 2. It's perfectly sufficient for GOG's menu to offer Jazz GOG 0002 and unmodified HH95.

For the remaining 10 % of players who care about the different versions, GOG can put the extra versions for manual extraction besides their main installation.

The airboard ditches in Medivo 1, Turtemple 2 and Pezrock 2 need most planning. Everything else has a solution that looks reasonable to me; still, any change is possibly intrusive and should be discussed.

I'd be happy to provide 1.0, the good 1.2, even the bad 1.2; the problem is that all the Jazzes are still copyright-restricted. GOG should prod Epic Megagames. I'm only a fallback source, and I'd need a written deal by GOG first. I don't have a 1.1.

-- Simon

Love & Thunder
Jul 21, 2020, 05:26 AM
Hi.

Sorry, I didn't see this until just now. I already PM'd you on Twitch, but I'll say my piece here...

I proposed fixing this a few days ago, and Violet agreed to talk to GOG about this. My proposed fix is this:
Ultimately, since 1.3's only advantage over "Good" 1.2 is the presence of the Holiday Hare episode, I suggest a rollback to "Good" 1.2, then just fix the visible spring in Tubelectric 2 (it should be invisible) and the broken airboard ditch in Medivo 1 using J1E (I've volunteered to do this, and have already prepared a fixed Medivo (http://www.mediafire.com/file/z1gxqr8hbqo00lj/LEVEL0.002/file)), and replace Marbelara Secret with a copy from another version (say, 1.3). This would fix Orbitus 2, all the airboard ditches, and circumvent any issues from shipping "Good" 1.2 unmodified (since Marbelara Secret is unpassable if shipped untouched), restoring the original 6 episodes to how they were intended, while still keeping the 3 CD episodes.

Orbitus 2 should not be the nightmare it is, and that's not something that can be fixed by just making some adjustments to the 1.3 level file, as far as I'm aware -- my understanding is there was an engine change of some sort?... The only fan fixes out there make changes that alter the way the level was originally intended, whereas reverting to "Good" 1.2 would return it to how it was in 1.0/1.1, and fix most of the airboard ditches that are broken in 1.3, leaving only Medivo's ditch broken (fixable by just giving that ditch a sprite in J1E, like so (http://www.mediafire.com/file/z1gxqr8hbqo00lj/LEVEL0.002/file)), along with a screwy version of Tubelectric 2 (it has an extra section at the end, which is cool, but the spring at the beginning is visible instead of invisible, which suggests this is an earlier version of the level or something, so either we fix the spring and have the longer Tubelectric 2, or just swap in the version of Tube 2 from 1.3. Probably best go with the latter so it's just like it was in the original 6-episode floppy version), and a broken copy of Marbelara secret (which can be fixed by just swapping in the level file from another version, such as 1.3. Though I can't remember which Level file Marbelara secret is).

This would only require "Good 1.2", Marbelara from 1.3, some J1E modification of Medivo 1, and then one of those two solutions to Tubelectric 2 as well (likely best to just take the version from 1.3, to minimise the presence of fan-edited levels), and the result would be a version of Jazz lacking in any of the serious/game-breaking bugs present in the current GOG version, or indeed, any other CD-ROM version of Jazz. We would finally have an all-round good version of Jazz 1 that has all 9 CD-ROM episodes.

The other options have various issues; shipping any untouched version would have various issues this would lack, manually fixing 1.3 would require a lot of individual fixes that my method wouldn't require, meaning several levels (rather than just one) would be manually adjusted (which would require testing to make sure J1E didn't corrupt any sounds or anything like that), and most critically, Orbitus simply cannot be repaired in 1.3 without making serious level geometry changes in the broken section (such as the commonly-spread fix that completely removes all challenge from the section in question). Including multiple versions would likely be confusing, and I'm not sure GOG would go for it. Though if they're willing to ship multiple versions, it would be really great if they could ship 1.0 and/or 1.1 alongside a fixed 1.2; the Dreempipes thing would be appreciated by speedrunners, it seems, and if it's 1.0 rather than 1.1, then fans will love trying out the "APOGEE" cheat. :)

I do agree with adjusting the version number in the patched version. Perhaps it would make sense to call it version 1.4, or 1.2F, if possible. (1.4 since this is a version following the release of 1.3, or 1.2F because it's based off of the original 1.2 release)

The only thing this leaves is the potential issue of the fact that Holiday Hare '94 was included in 1.3, but isn't in 1.2, but this is easily fixed by simply adding Holiday Hare '94 to the GOG launcher autoexec batch thing. I've prepared a version of this to show how it could look, and as an additional fix, I've also added options to change the settings of the two Holiday Hares (currently, the GOG launcher only lets you change the settings of Jazz CD, not the included Holiday Hare '95, so that's another fix introduced by the changes I'm proposing).

The new launcher would look something like this:
https://i.imgur.com/1NRB4ao.png
(Though I now realise it says "What game do you want to run?", even though four of the seven options are not games. :lol: Still, easy fix)

As far as I'm aware, GOG haven't responded to Violet about this yet. In theory, as you note, the best case would be for GOG to be officially provided with all five versions, or just "Good" 1.2, and the fix can be constructed from officially-provided files, but if that isn't possible, I think we would all greatly appreciate you providing your version of "Good" 1.2. :)
IIRC Violet said to me that it might be easier if we can just give GOG an already-completely-ready "fixed version" they can use, so I was hoping to just dig around, grab a copy of "Good" 1.2, throw together the fixes in an afternoon, and send it to Violet to pass along... It's ended up being slightly more troublesome than that.

Sorry for the long post. There's a surprising amount of nuance to this.

EDIT: I just figured out a better way to fix the Medivo 1 airboard ditch, and have replaced the two links in this post with a link to that fix. Previously, the fix I used was to give the airboard ditch a sprite (I chose the invincibility star), since the way around the engine bug that makes the airboard ditch fail is for it to have a sprite. If it doesn't have a sprite, it doesn't trigger. I've now realised a few things about this: First, the sprite can instead be the shine/spark sprite, whose first frame is just two pixels in close proximity, so it's far less visible (bonus points for setting the animation speed value to -1 so it doesn't animate). Second, since the item's behaviour is "Face Jazz", if I set it to only have a left sprite, then the sprite will only be visible as you're walking through the event (that is, when you cease to be on the right, and start being on the left, the event switches to its left sprite, to face Jazz. Since I've given it no right sprite, this means it's invisible until you're half-way through walking through it). And finally, I realised that the small sprite I chose is hidden behind Jazz for the one frame it's visible before the game realises that Jazz is touching the sprite, and gets rid of it like an item, removing the airboard. So, the result of this new fix is that the airboard ditch appears to behave exactly as it did in 1.0 and 1.1, making this a seamless fix. :)

Simon
Jul 21, 2020, 09:49 AM
Thanks for this excellent collection of ideas!

Great research to find a practically invisible sprite that fixes the airboard ditch. I've seen the first attempt with the invulnerability star, I agree that the practically-invisible sparkling (that usually appears after collecting floating treasure) is far better.

I agree that we should strive for a package that GOG can then ship as-is, and take extra care to get it reasonable on first try. Interesting that you chose 1.2 and I chose 1.3 instinctively.

Episodes A, B, C are more reasonable in 1.3 (see smalle table on version.html that compares only 1.2/1.3), but one can have 1.3 levels with 1.2 executables, so this is less important. 1.3 has bouncing Jungrock flowers, they're broken in 1.2... but again, 1.2 could get away without a fan mod of Orbitus 2, and I agree that levels should be as close to Epic's releases as possible.

Indeed, highly complex topic. I'd rather not rush this choice of executable. I'll come back to you with a detailed comparison!

-- Simon

Love & Thunder
Jul 21, 2020, 10:00 AM
Thanks for this excellent collection of ideas!

Great research to find a practically invisible sprite that fixes the airboard ditch. I've seen the first attempt with the invulnerability star, I agree that the practically-invisible sparkling (that usually appears after collecting floating treasure) is far better.

Thank you too. :)

Glad there are other people interested in fixing Jazz 1 for GOG, and also glad to hear you like my fix for Medivo.

Of course, if we end up siding with 1.3 in the end, we can use this fix for the other airboard ditches, though that would mean more levels being fan-modified, which opens up more possibilities of errors. (Perhaps I'm just paranoid after how J1CS/JCS94 used to glitch up sounds and such, but I'm weary of using J1E editing on any levels that don't absolutely need it)


I agree that we should strive for a package that GOG can then ship as-is, and take extra care to get it reasonable on first try. Interesting that you chose 1.2 and I chose 1.3 instinctively.

Episodes A, B, C are more reasonable in 1.3 (see smalle table on version.html that compares only 1.2/1.3), but one can have 1.3 levels with 1.2 executables, so this is less important. 1.3 has bouncing Jungrock flowers, they're broken in 1.2... but again, 1.2 could get away without a fan mod of Orbitus 2, and I agree that levels should be as close to Epic's releases as possible.

Indeed, highly complex topic. I'd rather not rush this choice of executable. I'll come back to you with a detailed comparison!

-- Simon
Oh. I didn't see the notes on episodes A-C. Hm.

Personally, I'd suggest using "Good" 1.2 with the changes I outlined prior, but with 1.3's versions of the CD levels, as you note is a possibility.
I presume that would just leave the broken Jungrock flowers bug?... I wonder if we can fix that with a level fix too. What precisely is the nature of that bug?

Y'know, reading those notes on "Good" 1.2, and how a lot of the issues with the CD levels don't seem to apply for "Bad" 1.2, and how there's the weird stuff about the Tubelectric extension... I wonder if "Good" 1.2 was an accidentally-used beta version, whereas "Bad" 1.2 was the finalised version of Jazz 1.2...?
It's just a shame that "Bad" 1.2, as well as 1.3, ended up screwing up so much in episodes 1-6...

But, I will say, if all that's broken in a "Good 1.2 but with 1.3's CD levels and Marbelara secret and Tubelectric 2, plus a fix of Medivo 1" version is the Jungrock flowers, and assuming that's more a minor annoyance than an actual game-breaking/significantly-gameplay-impacting thing, I would say that's preferable to 1.3's totally borked Orbitus, if you ask me. (Though I've only played about half the CD episodes before, a long time ago, so I'm not very familiar with what "Broken Jungrock bouncing flowers" would entail... If it's just an incorrectly-set behaviour or a missing animation, that would be dead easy to fix, for instance)

Simon
Jul 21, 2020, 11:03 AM
Thank you too. :)
siding with 1.3 in the end, we can use this fix for the other airboard ditches, though that would mean more levels being fan-modified, which opens up more possibilities of errors.

I agree that this is a problem.

I'm happy, too, that odd sprites on airboard ditches won't be a problem just in case.

broken Jungrock flowers bug?... I wonder if we can fix that with a level fix too. What precisely is the nature of that bug?

It's only a minor difference, but it's nothing gamebreaking. Here are videos:

http://www.lixgame.com/etc/jungrock-flowers-1.2.mp4
http://www.lixgame.com/etc/jungrock-flowers-1.3.mp4

Jungrock is the 3rd planet in Episode 4. To skip levels: P, backspace, LAMER.

I've promised a full comparison, which will still happen, but it's also important to tell right away that the Jungrock flowers aren't game breakers at all.

I wonder if "Good" 1.2 was an accidentally-used beta version, whereas "Bad" 1.2 was the finalised version of Jazz 1.2...?
It's just a shame that "Bad" 1.2, as well as 1.3, ended up screwing up so much in episodes 1-6...

I agree. The succession is most likely good-1.2, then bad-1.2, then 1.3. Epic fixed things and accidentally unfixed others.

You have sound reasoning that the long Tubelectric is an unfinished beta -- why else would the designer put a shield if there are only a few turrets ahead on Hard mode. There seems to be no other compelling reason to revert this longer Tubelectric when developing the good-1.2 into the bad-1.2; indeed, this reversal introduced the missing spring problem into the bad 1.2. Strangely, useless shields/invulnerabilities appear in many other levels, too, e.g., end of Letni 2, Technoir Secret, Scraparap 1.

I would say that's preferable to 1.3's totally borked Orbitus

Orbitus 2 must become easily passable in any outcome, for sure. :-) The choice is between (1.3 executable with a fan mod of Orbitus 2) and (1.2 with 1.2's native Orbitus 2).

-- Simon

Love & Thunder
Jul 21, 2020, 12:41 PM
It's only a minor difference, but it's nothing gamebreaking. Here are videos:
I've promised a full comparison, which will still happen, but it's also important to tell right away that the Jungrock flowers aren't game breakers at all.
I see.
In that case, I could try fixing them up, but I'd need a copy of good-1.2 to try it on. Or I can suggest fixes and you can tell me how they work out. That might work too.

The first thing I'd try is seeing if I can make those flowers duplicate the exact event parameters as the Orbitus bounce floors (sans the sound effect).


I agree. The succession is most likely good-1.2, then bad-1.2, then 1.3. Epic fixed things and accidentally unfixed others.

You have sound reasoning that the long Tubelectric is an unfinished beta -- why else would the designer put a shield if there are only a few turrets ahead on Hard mode. There seems to be no other compelling reason to revert this longer Tubelectric when developing the good-1.2 into the bad-1.2; indeed, this reversal introduced the missing spring problem into the bad 1.2. Strangely, useless shields/invulnerabilities appear in many other levels, too, e.g., end of Letni 2, Technoir Secret, Scraparap 1.
Indeed.
So, I guess the decision on Tube 2 is that we use the 1.3 version. :)


Orbitus 2 must become easily passable in any outcome, for sure. :-) The choice is between (1.3 executable with a fan mod of Orbitus 2) and (1.2 with 1.2's native Orbitus 2).

-- SimonYeah.

I think if we can get something reasonably workable in regards to the Jungrock springs, I think that makes it a no-brainer that we go with 1.2. If not, then I'm a little conflicted.

Simon
Jul 25, 2020, 07:11 AM
make those flowers duplicate the exact event parameters as the Orbitus bounce floors (sans the sound effect).


I'll try it. I must admit that I haven't used J1E yet. I'll find a peaceful evening to look into J1E and try this modding!

I think if we can get something reasonably workable in regards to the Jungrock springs, I think that makes it a no-brainer that we go with 1.2. If not, then I'm a little conflicted.

Over the past days, I've remembered several new version differences that aren't yet on versions.html. They're all missing hidden springs:

Diamondus 2: 1.0 and 1.3 have at least 4 hidden springs scattered near the top of the level. Good-1.2 doesn't have those springs.
Tubelectric 1: After the longest pipe ride, before the half-way checkpoint signpost, there is a large room. 1.0 and 1.3 have at least one hidden spring on a floating platform in this room. Good-1.2 doesn't have that spring.
Exoticus 1: Has a hidden spring in 1.3, but not in 1.2, on the purple bricks near the half-way checkpoint signpost.

I'll see what happens if I put the 1.3 levels into good-1.2. And I'll update versions.html.

We should also consider the legal issues:

If we base this project on 1.3 executables and levels, we'll have to mod levels, but never copy anything from other versions. What GOG ships is entirely sufficient as a base; the modifications can be any permissible license or public domain.
If we base this on good-1.2 executables, we must mix files from at least two different versions. What legal basis exists for us/GOG/anybody to extract and have GOG ship parts from 1.2? GOG is probably licensed to sell the 1.3 only. But the result will be shipped to thousands of players worldwide.

Ideally, we'll get in touch with GOG directly on these issues. I'm happy to do it, but I need a contact first. Merely writing to customer support won't cut it, I tried this for Orbitus 2 in 2018 and got no reply. I'll need a hands-on contact who realizes the importance and subtleties of what we do here. Maybe via VioletCLM?

Of course, there is the chance that I overthink this, given that Epic likely hasn't played through their own version in 25 years, not even before re-releasing in 2017. :-P

-- Simon

Love & Thunder
Jul 26, 2020, 12:54 PM
Over the past days, I've remembered several new version differences that aren't yet on versions.html. They're all missing hidden springs:
[...]

I'll see what happens if I put the 1.3 levels into good-1.2. And I'll update versions.html.

Alright.
Sounds like the solution is to use all the 1.3 levels (with a fixed version of Medivo), but use the good-1.2 engine...
That is, the only change to be made would be to change out the 1.3 EXE and FILEsomething (whatever it's called) for the good-1.2 versions, then swap out the one or two levels that need fixing.

That said, if various other problems continue to persist... Maybe, after all that fuss, the best solution may be to just use 1.3 and implement level-specific fixes for the broken airboard ditches, and Orbitus. It would really suck if this is the best option, but if it is, I'll see what I can do about potentially restoring Orbitus to something close to its original behaviour in the 1.3 engine, if I can.

It would be great if we can just use the 1.3 levels, and implement the one or two needed fixes, but if there's just too much that's weird about good-1.2 to use, I guess we can only pick the best of a bad bunch.


We should also consider the legal issues:

If we base this project on 1.3 executables and levels, we'll have to mod levels, but never copy anything from other versions. What GOG ships is entirely sufficient as a base; the modifications can be any permissible license or public domain.
If we base this on good-1.2 executables, we must mix files from at least two different versions. What legal basis exists for us/GOG/anybody to extract and have GOG ship parts from 1.2? GOG is probably licensed to sell the 1.3 only. But the result will be shipped to thousands of players worldwide.

We won't know until we talk to them, but I'm going to assume that if there are any issues with either of these, there will be issues with BOTH of these.

That is, either they are only allowed to use versions of the game that Epic give their thumbs-up on selling, or they are allowed to use any version they like. Either way, it will affect any kind of change at all. In which case, GOG would have to get approval for either method.


Of course, there is the chance that I overthink this, given that Epic likely hasn't played through their own version in 25 years, not even before re-releasing in 2017. :-P

TBH this is the most likely scenario. I don't think Epic really care, as long as they're getting their money from this old-as-hell game, made by a bunch of people who haven't worked there in years.


Ideally, we'll get in touch with GOG directly on these issues. I'm happy to do it, but I need a contact first. Merely writing to customer support won't cut it, I tried this for Orbitus 2 in 2018 and got no reply. I'll need a hands-on contact who realizes the importance and subtleties of what we do here. Maybe via VioletCLM?


I think Violet knows basically what our proposals are, and he'll lay them out well enough to someone at GOG, and then that will be passed through to whoever needs to be talked to about this, then whatever fix we end up going with will hopefully be given the OK.

There is always the possibility GOG will elect to enact no fixes at all, but IDK.

Simon
Jul 27, 2020, 12:46 PM
All right, first part of my research: Comparing the files.

Today, I won't yet state anything about Episodes A-C, boss levels, or secret levels. I feel only confident about the 6 * 6 main levels of Episodes 1-6.

The following 6 levels are equal between all three of 1.0, bad-1.2 and 1.3, and have a unique version in good-1.2:

LEVEL1.001 = Tubelectric 2 (longer in good-1.2, extra visible spring)
LEVEL0.002 = Medivo 1 (Unclear. Ditch is broken in good-1.2 anyway.)
LEVEL0.005 = Orbitus 1
LEVEL1.005 = Orbitus 2
LEVEL1.009 = Turtemple 2 (probably an airboard ditch fix for good-1.2)
LEVEL1.015 = Pezrock 2 (probably an airboard ditch fix for good-1.2)

The following 2 levels are equal between all three of good-1.2, bad-1.2 and 1.3, and have a unique version in 1.0:

LEVEL0.017 = Battleships 1
LEVEL1.017 = Battleships 2

The remaining 36 - 8 = 28 levels of episodes 1-6 that aren't covered in these two lists are identical across all four of 1.0, both 1.2s, and 1.3.

Thus, I interpret:
You cannot fix Diamondus 2 hidden springs in either 1.2 by copying 1.3 levels into the 1.2, because the Diamondus levels are already identical across all versions. (In fact, I started tonight by copying the 1.3 Diamondus 2 into good-1.2, attempting to fix the spring, and it failed. This prompted me to outright compare the level binaries en masse.)
You cannot fix the Jungrock flowers by copying 1.3 levels into 1.2, because the Jungrock levels are already identical across all versions.
Both 1.0 and 1.3 have the desired behaviors with hidden springs.
The 1.2 executable (which is known to be identical in good-1.2 and bad-1.2) has a bug that deactivates hidden springs.

I conjecture:
Jungrock flowers call similar code that hidden springs call, even though they don't flash a spring sprite when Jazz bounces off them. Other hidden springs flash a spring sprite for ~2 frames.
Orbitus bouncy floors also call similar code that hidden springs call.
Orbitus bouncy walls call different code, because they work in all versions.
The Jazz developers knew about broken airboard ditches and hacked some levels to fix them. In later releases, the fixes got lost.
We already have the results of what will happen when we take the good-1.2 executable with 1.3 levels: This will be the bad 1.2.
I should try to copy the good-1.2-unique files into 1.0 or 1.3 and see what happens. Maybe they'll fix airboard ditches.

The above research in this post was about LEVELx.yyy with yyy ranging from 000 through 017 inclusive, and x = 0 or x = 1. I suppose that these are Episodes 1-6 in order.

I suppose LEVELx.03x are Episodes A-C. All levels among those are identical between bad-1.2 and 1.3. Most of these have unique versions in the good-1.2. Further research requires me to finally install, run, and learn J1E. Lots of stuff to do, I'll keep at it!

We won't know until we talk to them, but I'm going to assume that if there are any issues with either of these, there will be issues with BOTH of these.

That is, either they are only allowed to use versions of the game that Epic give their thumbs-up on selling, or they are allowed to use any version they like. Either way, it will affect any kind of change at all. In which case, GOG would have to get approval for either method.

You're right. Thanks! That's a refreshing counter to my biggest worry of using the good 1.2.

After all, we aren't publishing optional open-source extensions to some closed package. We are outright modifying what GOG sells, and thus need to be approved top-level anyway, no matter what we do.

It would be great if we can just use the 1.3 levels, and implement the one or two needed fixes, but if there's just too much that's weird about good-1.2 to use, I guess we can only pick the best of a bad bunch.

I feel like it will be like this, we'll have to carefully decide which is the least nasty choice.

I promise to look into J1E within this week, and try your modding ideas, e.g., to the Jungrock flowers. I'll post results on Sunday evening, at latest. Meanwhile, feel free to prod me in IRC during the European evenings!

-- Simon

Love & Thunder
Jul 28, 2020, 06:25 AM
The following 6 levels are equal between all three of 1.0, bad-1.2 and 1.3, and have a unique version in good-1.2:

LEVEL1.001 = Tubelectric 2 (longer in good-1.2, extra visible spring)
LEVEL0.002 = Medivo 1 (Unclear. Ditch is broken in good-1.2 anyway.)
LEVEL0.005 = Orbitus 1
LEVEL1.005 = Orbitus 2
LEVEL1.009 = Turtemple 2 (probably an airboard ditch fix for good-1.2)
LEVEL1.015 = Pezrock 2 (probably an airboard ditch fix for good-1.2)


Hm. Interesting.
Again, I do wonder if Tube 2 (and perhaps some of the rest) are only different in good-1.2 because of an accidental use of the wrong files somewhere, reverting some of them to pre-final versions.


The following 2 levels are equal between all three of good-1.2, bad-1.2 and 1.3, and have a unique version in 1.0:


LEVEL0.017 = Battleships 1
LEVEL1.017 = Battleships 2


Wait, what's different about Battleships in 1.0?




You cannot fix Diamondus 2 hidden springs in either 1.2 by copying 1.3 levels into the 1.2, because the Diamondus levels are already identical across all versions. (In fact, I started tonight by copying the 1.3 Diamondus 2 into good-1.2, attempting to fix the spring, and it failed. This prompted me to outright compare the level binaries en masse.)
You cannot fix the Jungrock flowers by copying 1.3 levels into 1.2, because the Jungrock levels are already identical across all versions.
Both 1.0 and 1.3 have the desired behaviors with hidden springs.
The 1.2 executable (which is known to be identical in good-1.2 and bad-1.2) has a bug that deactivates hidden springs.


I see. So all of these fixes would have to be applied as specific, individual level fixes?... Hmm. I have some ideas about this. See below.


I conjecture:


Jungrock flowers call similar code that hidden springs call, even though they don't flash a spring sprite when Jazz bounces off them. Other hidden springs flash a spring sprite for ~2 frames.
Orbitus bouncy floors also call similar code that hidden springs call.
Orbitus bouncy walls call different code, because they work in all versions.
The Jazz developers knew about broken airboard ditches and hacked some levels to fix them. In later releases, the fixes got lost.


It makes sense in theory, but aren't the Orbitus bouncy floors fully-functional in good-1.2?... That raises a lot of questions about what exactly in good-1.2 broke the invisible springs. The main thing I wonder is what the difference between the good-1.2-unique version of Orbitus is, compared to the other versions.

In any case, in 1.3, you would be wrong about Orbitus's floors being exactly the same as the invisible springs:
https://i.imgur.com/nJ3h8d8.png
On the right is Tubelectric 2's hidden spring, on the left is Orbitus 2's bounce floor. (The attack and shot animations don't matter, so ignore them)

Orbitus's bounce floor works by simply being a spring event with no sprite, so in theory it works exactly the same as a normal spring, but it's invisible.
The Tubelectric spring is similar, except it becomes a visible spring when you touch it (notice that the behaviour parameter is set to Flip animation. This means that when Jazz touches it, it will switch from its Left animation to its Right animation, or vice versa).

However, I have a theory as to why both 1.2 versions have broken springs, and why bad-1.2's Orbitus floors are broken: I think it's the same problem as the broken airboard ditches. If something doesn't have a sprite, sometimes Jazz just doesn't collide with it.
In bad-1.2 they figured this out for Tube 2, and made the spring visible at all times, but 1.3 fixed the issue for that specific level entirely... Somehow.

I have a way to both prove this and fix good-1.2's Tubelectric 2: Change the behaviour parameter of event #34 in Tubelectric 2 (LEVEL1.001) to "Face Jazz" (it's the very top item on the behaviour dropdown menu), then swap the Left and Right sprites around. This is essentially the same fix as the airboard ditch, in a way, but it involves changing the behaviour too, where the airboard ditches already had the right behaviour, they just didn't have a sprite in either direction, so the collision never triggered... A somewhat similar problem is what I suspect afflicts Tubelectric 2 in good-1.2; the "Flip animation" behaviour only triggers when Jazz collides with it, but it uses an invisible sprite until Jazz collides with it, so it never switches to visible. Changing it to "Face Jazz" means it will flip when Jazz has just crossed the threshold of being on its right side (that is, when he's right in the middle of the event), thus it will have a sprite (a spring sprite), and with Jazz standing on top of it, it will seem to trigger correctly.
Here's a version of this I threw together (http://www.mediafire.com/file/t9zelz9g2ihub4j/LEVEL1.001/file).
It works in 1.3, but of course, the as-shipped version of Tube 2 works fine in 1.3 as well, so the tell is whether it works in good-1.2. :)
Sadly, this won't be a universal fix; looking at the Marbelara secret level, its invisible spring can be approached from either direction, so this "Face Jazz" fix won't work.

Also, here's a comparison of Orbitus's bounce floors (right) vs Jungrock's flowers (left) (https://i.imgur.com/xhDEwu7.png). Looks like they're mostly the same, but with a slightly different direction parameter (the attack and shot sprites shouldn't matter, as far as I can tell). The big question is if good-1.2's Orbitus bounce floors are different from the 1.3 copy of the event I'm showing here.




We already have the results of what will happen when we take the good-1.2 executable with 1.3 levels: This will be the bad 1.2.
I should try to copy the good-1.2-unique files into 1.0 or 1.3 and see what happens. Maybe they'll fix airboard ditches.


I'm not sure about the first point; Orbitus uses the same level files in good-1.2 and bad-1.2, and yet the bounce floors in Orbitus work fine in good-1.2, but are broken in bad-1.2.


Further research requires me to finally install, run, and learn J1E. Lots of stuff to do, I'll keep at it!

Alright! :)
J1E's main issues are poor documentation, and the sheer amount of settings you can mess with on each event. That, and the fact that, in many levels, all events are unnamed. Still, you can generally figure out what they are by just looking at where they are in the level.


You're right. Thanks! That's a refreshing counter to my biggest worry of using the good 1.2.

After all, we aren't publishing optional open-source extensions to some closed package. We are outright modifying what GOG sells, and thus need to be approved top-level anyway, no matter what we do.

Yeah.

On that note, perhaps one possible thing we could try is to see if it's possible to hack the EXE and FILE of 1.3 to adjust the hitbox of the Orbitus bounce floors. I don't know how feasible this is, but if we're making changes, and someone out there has the knowhow to fix this with a hex editor or something, it might be a nice solution... GOG will need approval from Epic either way.


I feel like it will be like this, we'll have to carefully decide which is the least nasty choice.

Yeah.

I'm gonna guess we'll end up having to use a modified 1.3, since it doesn't have the broken spring issues, but I really hope there's a workaround.


I promise to look into J1E within this week, and try your modding ideas, e.g., to the Jungrock flowers. I'll post results on Sunday evening, at latest. Meanwhile, feel free to prod me in IRC during the European evenings!

-- Simon
I'm pretty busy these days, but I'll try to prod you on IRC when I have time! :)

ShadowGPW
Jul 28, 2020, 11:49 PM
wow I absolutely love this! You guys do god's work.

Simon
Jul 29, 2020, 12:56 PM
Here's a version of this I threw together. [of Tubelectric 2]
It works in 1.3, but of course, the as-shipped version of Tube 2 works fine in 1.3 as well, so the tell is whether it works in good-1.2.

I put your level into good-1.2 and played. Yes, the spring activates and flashes its sprite as soon as Jazz has run past the middle. Thanks!

Downsides of this hack:
The flashing spring sprite hovers in the air, it's not on the ground, unlike the grounded flashing spring in, e.g., 1.0.
The spring appears when I jump over the event without landing.
The spring activates a tad later than a normal hidden spring in 1.0/1.3 because Jazz must pass its center.

Right, it confirms your theory that springs and ditches are fixable with sprites in good-1.2.

It's also conceivable to just put visible springs in place of hidden springs, like the Jazz devs did in good-1.2's Tubelectric 2. Like you, after comparing the files, I'm not so sure anymore what Tubelectric 2 was meant to be.

We already have the results of what will happen when we take the good-1.2 executable with 1.3 levels: This will be the bad 1.2.
I'm not sure about the first point; Orbitus uses the same level files in good-1.2 and bad-1.2, and yet the bounce floors in Orbitus work fine in good-1.2, but are broken in bad-1.2.

Hmm, Orbitus uses different LEVEL*.005 in good-1.2 and bad-1.2. :-) The bad-1.2 LEVEL*.005 is identical to the 1.3 or the 1.0 LEVEL*.005.

To be certain and to rule out other causes than executable and LEVEL*.005, I playtested Orbitus 1 after putting the bad-1.2 LEVEL*.005 into good-1.2. The behavior is then as in the bad-1.2: Broken bouncy floors that behave like air.

wow I absolutely love this! You guys do god's work.

Thanks! Great to see your interest. I'm super happy too that I can bounce these intricate ideas off Robo4900, and I'm learning a ton.

* * *

There is more to reply from Robo4900, I'll have to come back to that post.

Still, exciting new finding in Medivo 1! Existing knowledge: The Medivo airboard ditch in good-1.2 is broken (if airboard-Jazz passes over the ditch, Jazz won't ditch the airboard). We assume that this is because the ditch has no sprite, thus no collision with Jazz, and it's fixable by giving it a sprite.

Now, it's possible to shoot the checkpoint sign that is inside the Medivo 1 airboard section, die from the spikes next to it, and respawn on the checkpoint without airboard. Then Jazz will walk though the ditch. On touching the invisible ditch, Jazz will immediately receive an airboard! No sound plays, no yellow sparks fly.

This will not happen in 1.0 or 1.3; running over the ditch will not give Jazz an airboard there. Only in good-1.2 (haven't tested bad-1.2), Jazz will receive an airboard from the Medivo 1 ditch.

Thus, we have a non-sprite event that interacts with Jazz in 1.2. Nonetheless, the airboard ditch is fixable by giving it a sprite. I don't yet see how this fits together. I haven't tested other ditches in good-1.2 (one can gain/lose airboard with P, backspace, CSTRIKE to test other ditches) and I point out that the Medivo 1 LEVEL0.002 file is unique in good-1.2, which may explain that airboard-providing ditch.

-- Simon

Madge
Aug 1, 2020, 01:20 AM
Hey guys, just had to say, I'm thrilled at the prospect of a "definitive" Jazz Jackrabbit on GOG. At the moment I have no reason to buy the GOG release, but all missions fixed would be that reason.

If I understand correctly, the current plan is to release 1.3 with a patched Orbitus 2 and fixed airboard ditches. Sounds perfectly reasonable, and the bare minimum GOG needs to do anyhow. Their current release isn't in an acceptable state.

Otherwise, would it not be possible just to use the 1.0 engine, but tweaked so it plays all episodes? I appreciate that combing through code is not how anyone wants to spend their time though.

Edit: The Jazz Jackrabbit source code is not available, however I can say some things about it. It was written in Turbo Pascal. The EXE can can be correctly disassembled into Assembly. Which I have done using IDA Pro 6. Hacking the game via Assembly would be a difficulty rating of "Turbo and Then Some", but I suspect it's doable. From what I can tell, the main problem is the episode select screen. MENU.000 from 1.3 contains the needed graphics, which EXE version 1.0 does not handle correctly. Isolating the code for this one screen in 1.3 and replicating it in 1.0 would solve the major problem.

Edit Edit: I'm informed that Episodes A-C do not work correctly with 1.1 or 1.0's engine, so that rules out this avenue of attack. Although if anyone wants to try anyhow, I still think it's possible to get 1.0 to use 1.3's MENU.000, if you can track down the section of code. It's not easy with only Assembler instructions to work off.

Simon
Aug 2, 2020, 01:24 PM
I've ran J1E and toyed with the flower event #24 in good-1.2's Jungrock 1 (LEVEL0.011). Yes, giving that event #24 a large sprite will activate the bouncing flower behavior; the trigger area will depend on the size of the sprite.

The first thing I'd try is seeing if I can make those flowers duplicate the exact event parameters as the Orbitus bounce floors (sans the sound effect).

All right, here goes...

http://www.lixgame.com/etc/orbitus-1-event-quickfix.png

Picture above: The functional Orbitus 1 floor event in good-1.2.

Orbitus 1 contains many floorspringred around the bottom. The left/right idle animation of floorspringred is quickfix. This is the 3rd-to-last animation in the drop-down list, i.e., there come 2 animations after it in the animation list.

It's impossible to enlarge that J1E event-defining window; the remaining values are all zeroes, except for variable #1 and variable #2 which are 125 each.

The name quickfix in good-1.2 rings the alarm bells. And indeed, this animation doesn't exist in 1.0: In 1.0, the bouncy floor in Orbitus 1 is called event #22 and has empty Animation #125 for idle left/right.

Now I've tried to use good-1.2-floorspringred's parameters for the Jungrock flower event #24. The first problem is that it's impossible to choose quickfix for left/right idling animation: There is no quickfix animation available in Jungrock 1. All animations of Jungrock 1 event #24 instead are already set to animation #125, an empty animation. It's the 3rd-to-last in the list, exactly as quickfix was in Orbitus 1.

Nonetheless, let's work on everything but the idling sprite; I've given Jungrock 1 event #24 the name floorspringred, kept its EASY, SPRING1, Flip animation, Spring up. I put Direction = -40, then 0, 0, 0, 6, 0, 0, ..., 0, 125, 125. The only difference to the out-of-box-event-#24 was the change to Direction.

Saved the so-edited LEVEL0.011 and played in good-1.2. This didn't activate any bounce effect in good-1.2. Apparently, the mysterious quickfix animation in Orbitus 1 is necessary, it doesn't exist in Jungrock 1.

thrilled at the prospect of a "definitive" Jazz Jackrabbit on GOG. At the moment I have no reason to buy the GOG release, but all missions fixed would be that reason.

Thanks for the encouragement! Such a strong valuation of the potential fixes over the sold 1.3, I'll keep it in mind when it comes to pitch something to GOG.

use the 1.0 engine, but tweaked so it plays all episodes? [...] MENU.000 from 1.3 contains the needed graphics, which EXE version 1.0 does not handle correctly. [...] Episodes A-C do not work correctly with 1.1 or 1.0's engine

This is a good research topic. I already suggest to new speedrunners that they buy 1.3 from GOG, then put from the 1.0 shareware JAZZ.EXE and MENU.000 into their 1.3 to get 1.0 physics. It would be excellent anyway to understand this better.

Ultimately, I think it will be more work than either good-1.2 with adaptions, or 1.3 with adaptions -- especially if you already know that A-C will give problems. There are extra peculiarities of 1.0: Slow Dreempipes water raising/falling, where the devs quickened the water for 1.2 and kept it quick in 1.3. Also, even the fullgame 1.0 peddles to the player to buy the full game after winning Episode 1.

Still, my judgement is based on practically zero understanding of the executables. It's possible that somebody will find something quickly.

current plan is to release 1.3 with a patched Orbitus 2 and fixed airboard ditches.

You're right, I'm leaning towards 1.3 with adaptions, but haven't ruled out alternatives. Robo9400 is 50:50 between 1.3 and good-1.2. I still owe Robo9400 a full comparison of what needs fixing either way.

I still haven't put good-1.2 levels into 1.3, I should experiment with that next! Maybe they'll fix ditches.

-- Simon

Love & Thunder
Aug 14, 2020, 09:21 AM
wow I absolutely love this! You guys do god's work.
Thanks. :)

I put your level into good-1.2 and played. Yes, the spring activates and flashes its sprite as soon as Jazz has run past the middle. Thanks!
Ah, cool!
Sorry it took me so long to respond. Been very busy recently, and I keep forgetting to respond here...
Hope all is well with you.


Downsides of this hack:

The flashing spring sprite hovers in the air, it's not on the ground, unlike the grounded flashing spring in, e.g., 1.0.
The spring appears when I jump over the event without landing.
The spring activates a tad later than a normal hidden spring in 1.0/1.3 because Jazz must pass its center.

Right, it confirms your theory that springs and ditches are fixable with sprites in good-1.2.

It's also conceivable to just put visible springs in place of hidden springs, like the Jazz devs did in good-1.2's Tubelectric 2. Like you, after comparing the files, I'm not so sure anymore what Tubelectric 2 was meant to be.

I see.
Well, now that we know it works with a visible sprite, we'll have to see if we can figure out a way to change the alignment, I guess. Though I'm okay with a minor visual bug, if it fixes the functionality of the level. A slightly late trigger is mildly annoying, but it shouldn't impact the functionality, thankfully.


Perhaps the thing to try is to mess around with the settings in J1E and see if you can get it to a state where it makes the spring appear, close to the ground.



Hmm, Orbitus uses different LEVEL*.005 in good-1.2 and bad-1.2. The bad-1.2 LEVEL*.005 is identical to the 1.3 or the 1.0 LEVEL*.005.

To be certain and to rule out other causes than executable and LEVEL*.005, I playtested Orbitus 1 after putting the bad-1.2 LEVEL*.005 into good-1.2. The behavior is then as in the bad-1.2: Broken bouncy floors that behave like air.

Wow!
Hm. So, I suppose good-1.2 has a fixed version of Orbitus, but bad-1.2 forgot it, and in 1.3, they tried another method of fixing it that broke things in Orbitus 2... Very interesting!


Thanks! Great to see your interest. I'm super happy too that I can bounce these intricate ideas off Robo4900, and I'm learning a ton.

:)

[airboard providing ditch]
Hm. Weird. Still, if my fix fixes that, then that's good, at least.

And we do know that some invisible sprites are still interactable, we're just not sure which ones.

I've ran J1E and toyed with the flower event #24 in good-1.2's Jungrock 1 (LEVEL0.011). Yes, giving that event #24 a large sprite will activate the bouncing flower behavior; the trigger area will depend on the size of the sprite.

Thought so! :)

Picture above: The functional Orbitus 1 floor event in good-1.2.

[...]

Saved the so-edited LEVEL0.011 and played in good-1.2. This didn't activate any bounce effect in good-1.2. Apparently, the mysterious quickfix animation in Orbitus 1 is necessary, it doesn't exist in Jungrock 1.
Hm.

Looks like the "quickfix" sprite is just a black pixel, present to let Jazz collide. We could hack that into Jungrock, or alternatively try creating a new animtion in one of the unused spaces, use the first frame of the item collection glitter flash thing, and use that as the idle animation for the Jungrock springs. It might just be seamless enough that players don't notice the difference.

If I understand correctly, the current plan is to release 1.3 with a patched Orbitus 2 and fixed airboard ditches. Sounds perfectly reasonable, and the bare minimum GOG needs to do anyhow. Their current release isn't in an acceptable state.
No, there are other issues in 1.3, mainly Orbitus 2, that aren't really fixable without making a significant change to the level.

Personally, I'm aiming for this fix: We revert the engine to good-1.2, but use a mixture of levels to create a "definitive" version that fixes all the major bugs... I think we would default to 1.3 levels, but good-1.2 has some unique versions of a few levels (most notably both Orbituses) which we should use since they fix some issues. Then we apply some individual level fixes (such as Medivo and Tubelectric) to fix any remaining issues.


FWIW, when I first started investigating this, I was advocating for us using the extended version of Tubelectric 2 found in good-1.2, but at this point, I think it's best to use the 1.3 version, with a fix to make the spring work in good-1.2, as I think the good-1.2 version was an accidental inclusion; the version seen in 1.3, and all other versions other than good-1.2, is how it's supposed to be. So, I think a fixed version of the 1.3 version of the level is the best way to go.



Otherwise, would it not be possible just to use the 1.0 engine [...] I'm informed that Episodes A-C do not work correctly with 1.1 or 1.0's engine, so that rules out this avenue of attack.
Yeah, sadly we can't just revert to 1.0 or 1.1.


This is a good research topic. I already suggest to new speedrunners that they buy 1.3 from GOG, then put from the 1.0 shareware JAZZ.EXE and MENU.000 into their 1.3 to get 1.0 physics. It would be excellent anyway to understand this better.

FWIW, if we can put together a fix, I would hope that speedrunners could transition into using our fixed version instead of 1.0, since then they could do full speedruns of all nine original episodes. :)


You're right, I'm leaning towards 1.3 with adaptions, but haven't ruled out alternatives. Robo9400 is 50:50 between 1.3 and good-1.2. I still owe Robo9400 a full comparison of what needs fixing either way.

I still haven't put good-1.2 levels into 1.3, I should experiment with that next! Maybe they'll fix ditches.
To be honest, at this point, I'm leaning more towards good-1.2 with fixes. My logic is this:

If we can make sure we've tracked down all the bugs in 1.2, then I think we can fix them all. The "quickfix" sprite in Orbitus could be used as a basis to fix all the other broken invisible sprites that don't have any alternative fix.

Whereas, 1.3, Orbitus is completely unfixable without significantly changing the level geometry, and thus significantly departing from how that level is intended to play.

Simon
Aug 21, 2020, 03:20 PM
I'm doing fine, no worries -- I'm merely also busy with real life. Little time for hobbies.

Orbitus 2 in 1.3 with MaxStrike's fix doesn't play as intended, right: Jazz won't ever be bounced into the wrong area, whereas the intended design bounces Jazz into the wrong area unless one holds rightwards. 1.2 has this better.

Orbitus 2 in good-1.2 doesn't play as intended entirely, either: Jazz can fit through gaps in the bouncy floors. This allows major backrouting in the area after the half-way checkpoint: Jazz should follow the zig-zagging path, but instead can fall through all the way. This was fixed in 1.3, of course at a cost far too high.

I still like the sentiment of avoiding obvious redesigns. E.g., I'm contemplating good-1.2 with lots of visible springs where all the hidden springs were, and a fix for the Medivo ditch, and A-C from 1.3.

Will come back to you for the remainder!

-- Simon

Violet CLM
Sep 7, 2020, 09:22 AM
Following a few logistical issues in conversation, I have this response for you:
Replacing the files shouldn't be a problem at all.
Could you provide new files?
I would pass them to our tech team.

After replacing them I would add the old build as a goodie and update the forum topic to let users know that we have implemented the fix.
Issues I mentioned were Orbitus 2, airboard ditches, and levels with impossible item/enemy completion requirements, but I acknowledged that last was a lower priority.

I continue to favor editing levels to work properly in 1.3, rather than pursuing some older version of the game with its own issues. I don't think the one area in Orbitus 2 needs to play as close as humanly possible to the original intent—it's one area.

If making any changes to levels in J1E, please make sure the sound effects all play the same as they did before. Sometimes those still get corrupted a little.

Simon
Sep 9, 2020, 09:51 PM
Violet, thanks for coordinating! This is really important for the working spirit here. Especially GOG's willingness to include at least 1.3 as an extra.

Yeah, modifying 1.3 fits my sentiment of modifying as few levels as possible.

Ideally, when we send them the replacement files, I'll send them unmodified 1.0 and good-1.2, too.

Unreachable 100 % items/enemies: I merely know Nippius 2's ending and allegedly one of the Tubelectrics. JayTC_ (this is his twitch name) has tried to 100% Jazz 1, I'll contact him. It's also conceivable to fix Orbitus and airboard ditches in one release, and then fix 100% in a later release.

* * *

New research results: The broken airboard ditches in 1.3's Turtemple 2 and Pezrock 2 are fixed by putting good-1.2's Turtemple 2 and Pezrock 2 into 1.3.

This, paired with Robo4900's fix of Medivo 1, means that we can fix all ditches in 1.3. Also, it sounds like good-1.2 and 1.3 have the same bug that broke airboard ditches, since the same modifications fix the ditches in either version.

-- Simon

Simon
Sep 14, 2020, 09:26 PM
If we sitck with modifying 1.3, the battle plan for GOG 0002 is:


Edit Orbitus 2 such that Jazz bounces upwards on bigger mistakes, but passes when permanently holding right. Verify that sounds play. (Other people have tried this and the sounds got botched, as Violet warns.) Fallback: MaxStrike's fix.
Copy Robo4900's practically invisible sprite into 1.3 to fix airboard ditch in Medivo 1. Verify that sounds play.
Copy Turtemple 2 and Pezrock 2 from good-1.2 into 1.3 to fix airboard ditches. Verify that sounds play.
Binary-patch FILE0001.EXE to print a different version string during start than: Welcome to Jazz Jackrabbit. version 1.3 -- this string sits in clear text in FILE0001.EXE, beginning at 0x3007. My proposal with matching length: Jazz Jackrabbit, v. GOG 0002
Ship 1.0, good-1.2, and unmodified 1.3 as goodies.

I'll work on this Orbitus 2 this weekend and post results!

Tubelectric 2 will remain short in 1.3 because it's not broken; let's instead make a good point for shipping good-1.2 that has the long Tubelectric 2.

It's sensible not to delay GOG 0002 for 100% items/enemies, and postpone 100% items/enemies for GOG 0003. JayTC hasn't yet replied to me on twitch yet, and properly testing for 100% items/enemies takes long, even in a team.

-- Simon

Violet CLM
Sep 15, 2020, 03:53 PM
I asked GOG if they have any preferences regarding FILE0001.EXE version strings. No response yet, but obviously it's a very easy/fast thing to implement.

Simon
Sep 16, 2020, 09:32 PM
Good idea. The point is merely to label it different than 1.3; I'll be happy with any versioning scheme they suggest.

-- Simon

Violet CLM
Sep 18, 2020, 11:40 AM
GOG contact: "I think that this minor change doesn't require changing the displayed text."

Love & Thunder
Sep 20, 2020, 05:46 AM
I continue to favor editing levels to work properly in 1.3, rather than pursuing some older version of the game with its own issues. I don't think the one area in Orbitus 2 needs to play as close as humanly possible to the original intent—it's one area.
It is still a level in the main campaign, though.

My view is: If it's possible to restore all 9 original episodes to how they're supposed to work, we should do that. That's impossible in 1.3, but it may be possible in good-1.2, assuming there aren't any bugs that we're not aware of.

But, if we have to compromise somewhere, sure, having some kind of workaround in Orbitus is better than having the flowers in Jungrock break or something, so going for 1.3 with fixes is fine. However, it doesn't look like good-1.2 has anything badly broken enough that we can't fix it.

I guess it all depends on what exactly is broken in good-1.2. If it's all stuff we can fix, then it seems to me that it's a no-brainer that we use a fixed good-1.2.

Ship 1.0, good-1.2, and unmodified 1.3 as goodies.
Personally, if the main version is a fixed version of 1.3, I would advocate for ignoring unmodified 1.3, but including a good-1.2 that's been modified to fix its level bugs (the broken ditches, springs, and such) as a goodie, but keeps all the variant levels (the more difficult versions of various levels in episodes A-C, the longer Tubelectric, etc.).
Overall, this would mean an ideal copy of every version of Jazz 1 is available to players; people can play a version of Jazz 1 that has a fully beatable campaign, but has the extended Tubelectric 2 and the earlier, harder versions of episodes A-C (a fixed good-1.2), they can play the ideal-for-speedrunning 1.0, but the main version of the game is our fixed 1.3.

The unmodified, broken versions of good-1.2 and 1.3 would ideally become nothing more than a historical curiosity, and IMO not all that worth including.

Just my view.

Slaz
Sep 23, 2020, 12:44 AM
While we’re at it, please also remind the GOG contact to implement our fix to their macOS build of JJ1 when it gets implemented.

And also to make sure that the DOSbox config file has frameskip set to 0. The current macOS build strangely has frameskip set to 1 and we can’t expect the average user to know how to find that file and change it themselves.

Simon
Sep 28, 2020, 01:12 PM
Apologies for having nearly no time in the past 1-2 weeks. Nothing to show yet from level editing. I still look at this topic every day!

-- Simon

Love & Thunder
Oct 13, 2020, 09:00 AM
Any news?

If there's anything I can help with, please do say so.

I continue to hope good-1.2 can be fixed-up, but if it's going to be a hassle, I'm not going to make a fuss for just that one section of Orbitus (as Violet rightly points out, it's just one section).
Regardless of which version we're using as the basis for our fix, I'm happy to take a swing at fixing any further broken airboard ditches (or anything else) in addition to the Medivo one I've already tried.

Simon
Oct 15, 2020, 11:22 AM
Here are the ditch fixes for Turtemple 2 and Pezrock 2 (http://www.lixgame.com/etc/ditch-fixes-tur2-pez2.zip). They should work in 1.3 and sounds should still play.

Apologies for not posting anything productive about Orbitus 2 in 1.3, I've toyed around the editor but never finished anything. I've firmly set aside the entire upcoming Sunday, October 18th to make and post a fix for Orbitus 2!

1.3 with such fixes feels closest to what the devs intended, especially w.r.t. Orbitus. The devs made a deliberate decision to increase the bounce floor trigger area. Basing GOG 0002 on 1.2 would revert this decision and thus un-fix several areas across Orbitus. Fixing the one near-impassable section in Orbitus 2 seems like the best of both worlds. Still, it's always risky to assume what the devs have possibly thought.

1.3 needs the fewest changed levels compared to good-1.2, mostly due to hidden springs. I still owe you that full level-by-level comparison. >_>

Love & Thunder, can you post your adapted launcher batch file? Even if we end up with 1.3 plus fixes, HH95 will need the sound settings.

Slaz, I'll keep this request in mind. Jazz with frameskip = 1 will feel awkward. I'll post a new to-do list this Sunday (along with the Orbitus work) and will include that we must write this request.

-- Simon

Simon
Oct 18, 2020, 09:25 AM
Download Orbitus 2 fix 2020-10-18 (http://www.lixgame.com/etc/orb2fix-2020-10-18.zip) -- to be played in 1.3, e.g., the current GOG release. This is based on the 1.3 Orbitus and feels very similar in difficulty to the 1.0 and good-1.2 vanilla Orbitus.

It's still possible to get sucked upwards unless you actively aim for the next hole. Holding right diligently is enough, as it was in 1.0 and good-1.2.

If you happen to ascend in a particularly unfortunate alignment during the final column, holding right won't cut it and you'll get sucked upwards. This happens maybe 5 % of the time. If we want to kill even this small chance, I'll have to lower the ceiling of the rightmost hole in the wall; tell me how you feel.

To compare, here's the old version, from vanilla 1.3:

http://www.lixgame.com/etc/orb2vanilla13.png

^ Level layout in vanilla 1.3. Now the fix 2020-10-18:

http://www.lixgame.com/etc/orb2fix.png

^ Level layout in Orbitus 2 fix 2020-10-18.

I've raised/lowered the bouncy floors and wall columns by one or two tiles. I've added a glowing arrow in the background to fill the extra empty space in the second column.

Number of pickups and enemies is the same. In the final drop, the pickups are lower than before, but their number and pattern stays the same.

http://www.lixgame.com/etc/orb2hundo.png

^ All sounds play according to my testing, and it's still 100-%-able.

http://www.lixgame.com/etc/orb2sig.png

^ I've added these blocks far out of bounds, they're unreachable, not even the camera will scroll here. I'm mainly concerned about versioning, I'd also be fine with removing the upper two lines of text.

This is only Orbitus 2 for now. I'll write another post with the to-do list and to address the good-1.2 vs. 1.3 concerns.

-- Simon

Love & Thunder
Nov 2, 2020, 11:00 AM
Love & Thunder, can you post your adapted launcher batch file? Even if we end up with 1.3 plus fixes, HH95 will need the sound settings.

Hi. Sorry I didn't see this sooner.

It's actually an autoexec section in a DOSBox conf file, to match the form of the current Jazz launcher.

Here's my full, modified dosbox_jazz_single.conf file.

[ipx]
# ipx: Enable ipx over UDP/IP emulation.

ipx=false

[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.
@echo off
mount c ".."
mount C "..\cloud_saves" -t overlay
c:
goto launcher

:launcher
cls
ECHO [1;32m[42mÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ECHO º ------------------------------------------ º
ECHO º Jazz Jackrabbit Collection º
ECHO º ------------------------------------------ º
ECHO º Jazz Jackrabbit CD-ROM version º
ECHO º 1) Launch game º
ECHO º 2) Sound and Language Settings º
ECHO º ------------------------------------------ º
ECHO º Jazz Jackrabbit Holiday Hare '94 º
ECHO º 3) Launch game º
ECHO º 4) Sound and Language Settings º
ECHO º ------------------------------------------ º
ECHO º Jazz Jackrabbit Holiday Hare '95 º
ECHO º 5) Launch game º
ECHO º 6) Sound and Language Settings º
ECHO º ------------------------------------------ º
ECHO º 7) Exit program º
ECHO º ------------------------------------------ º
ECHO ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ[0m

choice /c1234567 /s Which game do you want to run? [1-7]: /n
if errorlevel 7 goto exit
if errorlevel 6 goto setup95
if errorlevel 5 goto hh95
if errorlevel 4 goto setup94
if errorlevel 3 goto hh94
if errorlevel 2 goto setupcd
if errorlevel 1 goto jazz

:jazz
cls
jazz.exe
goto exit

:setupcd
cls
setup.exe
cd..
goto launcher

:hh94
cls
cd hh94
jazz.exe
goto exit

:setup94
cls
cd hh94
setup.exe
cd..
goto launcher

:hh95
cls
cd hh95
jazz.exe
goto exit

:setup95
cls
cd hh95
setup.exe
cd..
goto launcher

:exit
exitI used the GOG version as a base, but added Holiday Hare '94, and ways to launch the setup for both Holiday Hares, and I formatted the menu slightly differently to reflect this.
Note that this will only work if you have Holiday Hare 94 installed in a folder called "HH94", and '95 in a folder called "HH95", in the game's folder.

This is what it looks like when you run it:
https://i.imgur.com/Symz7eE.png

Should I add options for 1.0 as well, or are we pitching that as a goodie?

Thanks for posting your fixes, though regarding Orbitus 2, are all of those changes necessary? I thought only the column on the right (and the realigned items) would be necessary to restore the original functionality of the level?

Simon
Nov 9, 2020, 09:55 PM
Thanks!

I would pitch 1.0 and good-1.2 as goodies and not include them in the launcher.

The changes between 1.3 Orb2 and 2020-10-18 Orb2 seem to be a local minimum to get pre-1.3-similar playability. Anything less and the section remains considerably harder. All three horizontal entries are much harder on 1.3 than on 1.0/good-1.2; the third entry is merely by far the hardest.

The images of 2020-10-18 really imply how much 1.3 extends bouncy floor trigger areas -- both vertically and horizontally. Smaller entryways would lead to Jazz bonking against the ceiling while Jazz is 30% in the column and 70% in the entryway; even here, the extra horizontal trigger will suck Jazz back and upwards.

Of course, sometimes there was a choice, such as editing the collectibles above or below the rightmost hole, and I've chosen to edit below.

To do:

Keep 1.3 executable: It may even be honest to keep the binary exactly the same to allow confirmation by opaque binary comparison. But write release notes that explain our changes.
Add 1.0, good-1.2, and vanilla 1.3 as goodies, and explain to GOG why they're necessary: Original version with original bugs, fastest for running, extra Tubelectric 2, and the unmodified base of GOG 0002 that they wanted to include anyway.
Add Love & Thunder's launcher. If we base GOG 0002 on 1.3, we can remove HH94. We should probably add versioning information to the launcher since we don't edit the Jazz executable.
Write request for Mac framerate Dosbox config, see Slaz's recent post.
Before release, test it all. I'm considering to stream the entire GOG 0002, to show that every level is playable, all airboards ditch.

I'll continue working on GOG 0002 this weekend!

-- Simon

Love & Thunder
Nov 10, 2020, 08:35 AM
I don't think removing HH94 is necessary. Personally, I think it's nice to have both HH94 and HH95 available on their own. No harm in it.

Otherwise, all of that sounds good to me. :)
My two cents on what the names of these goodies/extras should be:

Original 1.0 floppy disk release
Early 1.2a CD release
Unmodified 1.3 CD release


And the reasons for each are that 1.0 is favoured by speedrunners and contains the infamous APOGEE cheat, 1.2a contains a longer Tubelectric 2 and certain levels from episodes A-C are slightly different as well (harder, potentially an appealing challenge for masters of the game?), and 1.3 is there so that the unmodified 1.3 version is present.

Oh hey, two more things on the subject of goodies/extras:
First, can GOG include the comics for Jazz 1 and 2? Jazz 2 includes its original manual, but neither has their respective comic, and Jazz 1 doesn't even have a proper manual, it's just a PDF version of the TXT readme in the game's files.
Second, the OSTs for both games. GOG often include these with their games, and the Jazz 1 & 2 OSTs have previously been released (albeit with errors), so I wonder if that could also be rectified down the line? I'm sure Alexander Brandon would be interested in helping out with this in any capacity needed if GOG want to pursue it.

Fixing Jazz 1 is our focus, but if GOG are adding goodies/extras of these other versions of the game, maybe they can look into these too. :)

Regarding testing: I'll see if I can find the time to do my own testing too.

To recap... My understanding of the fix at the moment is this:

Medivo 1 ditch fixed using my edit (https://www.mediafire.com/file/z1gxqr8hbqo00lj/LEVEL0.002/file).
Turtemple 2 and Pezrock 2 ditches fixed (http://www.lixgame.com/etc/ditch-fixes-tur2-pez2.zip) by swapping in the good-1.2 copies of those levels. (Or you did an edit similar to my Medivo fix?)
Orbitus 2 fixed by you changing the layout of the offending section slightly. (http://www.lixgame.com/etc/orb2fix-2020-10-18.zip)

Is that right?

(Sorry for the long post. I'm eager to make sure every detail is examined and scrutinised so we get this right! :) )

Simon
Nov 10, 2020, 11:17 AM
Yes, your understanding of the current status of 0002 is correct:
* Base is 1.3
* Medivo 1 by you (practically invisible sprite)
* Turtemple 2 and Pezrock 2 from good-1.2 (I did not edit these)
* Orbitus 2 by me (2020-10-18)
* Launcher by you
* 1.0, good-1.2, vanilla 1.3 as goodies; good naming, excellent reasons, thanks!

Known problems that we won't fix in 0002:
* 100%-ability of some levels, e.g., Nippius 2

I'm neutral about adding standalone HH94. There is merit to it, I think the standalone HH94 had unique advertizing and loading screens.

Soundtrack and manual: I could merely offer it in German, that's not useful. I've seen third-party scans of the English comic on the net. Ideal would be a dedicated re-scan from the English source.

From my posted Orbitus 2020-10-18 pictures, I'm getting the hunch that I didn't stay true with the color of the animated bouncy floors, even though I put the exact same event #22. The tileset offers several bouncy floors, all are blue stripes, but different hues/animations. It's minor, no physical difference, but I'll look into it again this weekend, too.

Yes, I'm with you with the scrutiny. Bothering GOG takes time (it would be back-and-forth between experts in different areas), we should make the first offer as complete and error-free as we can. It would even be OK if it took a couple more weeks. (GOG forum already offers MaxStrike's fix for the avid reader, and our thread here offers the loose fixes.)

-- Simon

Love & Thunder
Nov 10, 2020, 01:11 PM
Known problems that we won't fix in 0002:
* 100%-ability of some levels, e.g., Nippius 2

Hmmm. I feel like we could try to fix the impossible 100% on some levels, but I think there's a high chance of accidentally introducing audio bugs, and it's a bit outside the scope of this patch.

Still, it would be nice to fix, I suppose.

If we know which levels are impossible to 100%, and we're willing to test it out, we could try. It would be nice for speedrunners to have a 100% category.
But, at the same time, it would be a very tedious fix if we don't already know exactly which levels require a fix. I can't remember if J1E has an automatic 100% item counts feature; if it doesn't, then that would make it even more tedious.


I'm neutral about adding standalone HH94. There is merit to it, I think the standalone HH94 had unique advertizing and loading screens.

Yeah.

The way I see it, it's already provided, so it should probably be left in.


Soundtrack and manual: I could merely offer it in German, that's not useful. I've seen third-party scans of the English comic on the net. Ideal would be a dedicated re-scan from the English source.

I have a couple of different scans of the Jazz 1 one, and a scan of the Jazz 2 one, all from posts people have made in the GOG forums.

But, GOG provide a high-quality copy of the Jazz 2 manual (without the comic), presumably provided by Epic, so I do wonder if Epic also have high-quality master copies of the comics. If so, it would presumably trounce any scan out there.


From my posted Orbitus 2020-10-18 pictures, I'm getting the hunch that I didn't stay true with the color of the animated bouncy floors, even though I put the exact same event #22. The tileset offers several bouncy floors, all are blue stripes, but different hues/animations. It's minor, no physical difference, but I'll look into it again this weekend, too.

Okay. :)


Yes, I'm with you with the scrutiny. Bothering GOG takes time (it would be back-and-forth between experts in different areas), we should make the first offer as complete and error-free as we can. It would even be OK if it took a couple more weeks. (GOG forum already offers MaxStrike's fix for the avid reader, and our thread here offers the loose fixes.)

-- Simon
Glad we're on the same page. :)

Violet CLM
Nov 11, 2020, 06:52 AM
I can't remember if J1E has an automatic 100% item counts feature; if it doesn't, then that would make it even more tedious.
Nope. J1LES does.

Love & Thunder
Nov 11, 2020, 06:08 PM
Nope. J1LES does.
Hm.

Would you say there's a greater risk of sound bugs and such if a Jazz 1 level is converted for J1LES use?
If so, perhaps the way to go about this would be to have J1LES count up the tallies, then manually enter the numbers it gives into J1E.

Just as a thought.

Violet CLM
Nov 12, 2020, 06:59 AM
I don't have the source anymore, but I don't think J1LES has any reason to look at sound data at all. I believe when you use it to inject a layout into a JJ1 level file, it shouldn't edit any parts of the file that weren't configurable from within J1LES.

Love & Thunder
Nov 28, 2020, 10:19 AM
So, if a there's a list of the levels that are impossible to 100%, I could try to work on that?

I don't have a lot of time, but if that's a way I can help this along, I can certainly try.

Hope things are going well on your end. :)

Simon
Dec 8, 2020, 11:35 AM
I'm doing well, merely super short on time. Lots of things to do at work. It has been extremely hard to find even half a day to continuously attack a hobby project.

Some levels that may warrant investigation for 100%:

Tubelectric 2: Allegedly some unreachable items or wrong count in some version.
Nippius 2: Can't reach all ice creeam cones during a single jump at the exit.
Battleships 2: No claims I've heard. But there are two different paths through Battleships 2, and both eventually prevent backtracking.
Deserto 1+2: No claims I've heard. But sparkles in this world generate unlimited lizard enemies. The sparkles themselves can be killed. How do either of these count towards 100%?

Enemy count differs across difficulties. If one wants to be ultra-thorough, one would have to 100% the maps on several difficulties. I'm rather certain that Hard and Turbo have the same enemy distribution in all levels by Epic and Turbo merely adds 1 HP to all enemies.

Extremely unlikely, but theoretically possible, is that the treasure distribution depends on the difficulty. Consider that Dreempipes 2 has Launcher ammo containers that only appear on Hard and Turbo, at the start of the final horizontal yellow pipe section. Likely, the level format allows not merely ammo containers, but also treasures to depend on difficulty. But I would be very surprised if it ever happens throughout Epic's levels.

-- Simon

Love & Thunder
Apr 13, 2021, 07:15 AM
Hi.

I haven't done anything in regards to this, but I'm thinking about looking into fixing the 100%ability next time I have a little free time.

How are things going on your end?

Simon
Apr 17, 2021, 11:58 PM
Thanks for prodding me. I've been busy with other things, nearly no Jazz since beginning of 2021. Thus, deadline for myself: I'll recolor the bouncy floors, re-test Orbitus for 100%, and post within 3 days, Wednesday night at latest. And I'll have next steps to push this towards release.

Sure, investigate the 100 %, we can still decide whether to include in this release or in a future release.

-- Simon

Love & Thunder
Apr 18, 2021, 09:02 AM
Very cool! :)

Had some time today, so I've done a litle investigation...

Tubelectric 2: J1LES didn't change the number of enemies or items for my 1.3 copy of the level.
Nippius 2: There's a group of 5 ice creams at the very end; at most, you can only get 2, leaving 3 impossible to get. Additionally, there are several ice creams in the spring section at the very beginning of the level that I believe to be impossible to obtain. (https://imgur.com/a/jyQiX6L) But, as much as I love Jazz 1, I'm not very good at it! So, you're probably the best one to ask about whether those early ice creams are possible to obtain. J1LES doesn't change the number of enemies or items, so it's unlikely Epic accounted for this originally. Either way, the items count definitely needs to be reduced by at least 3.
Battleships 2: Yep, you can't go back round to get all the things, so the number of items and enemies will have to be revised. I used J1LES to erase all events that you couldn't reach on one path, saved it, noted the numbers, reverted back to the untouched file, and did the same for the other path. J1LES automatically figured out the numbers both times, so:

The original numbers in the untouched level are 55 items, 17 enemies on easy, and 40 on hard & turbo.
If you take the path to the right, it's 34 items, 17 enemies on easy, and 27 on hard & turbo.
If you take the path to the left, it's 51 items, 12 enemies on easy, 29 on hard & turbo.

In both cases, I made sure to include any items that you could get by going partially down one path until the last point you can backtrack from; did some testing to make sure. So, I am confident that these numbers are correct.
This in mind, I would suggest using the 51/12/29/29 numbers, since "100% completion" implies an optimal path in terms of maximising the number of items, enemies, etc. to get a high score basically. So, it makes sense the 100% completion numbers would be based on the path containing the higher number of items and enemies.
Deserto: I found some items that I SUSPECT are unreachable (https://i.imgur.com/Nw6GYxS.png), but I don't know; I'm not very familiar with Deserto. I couldn't find the spawners you referred to in your last post. My plan was to make a blank level with a few enemies, including a spawner, and see if the lizards spawned affect the completion percentage, but I don't know which event the spawner is.

Violet CLM
Apr 18, 2021, 08:53 PM
The Deserto lizard spawner is event #13 in level1.037... I don't remember if it appears in level0 too.

Simon
Apr 21, 2021, 10:29 AM
Thanks! Solid work on Nippius and Battleships. Deserto 1, right, the spawners don't exist in 1.3's Deserto 1, I didn't know.

Useful: Full-level images for Jazz Jackrabbit on VG Atlas (https://vgmaps.com/Atlas/PC/index.htm#JazzJackrabbitCD)

Very cool! :)
Tubelectric 2: J1LES didn't change the number of enemies or items for my 1.3 copy of the level.


Then it's likely that Tubelectric 2 contains unreachable treasure/enemies outside the visible map. Reason: Today, I played through Tubelectric 2 on Medium in 1.3, trying to get 100 % enemies/treasures. I got 100 % enemies, but only 98 % items. For this, I tried to get all black chip treasures, I didn't collect all carrots/ammo/invulnerabilities/...

Tubelectric 2 VG Atlas image (https://vgmaps.com/Atlas/PC/JazzJackrabbitCD-Episode1-TurtleTerror-Tubelectric-LevelTwo.png) shows an out-of-bounds treasure at the very top, about 80 % at the right.

Deserto: I found some items that I SUSPECT are unreachable

Right, those are unreachable. They shouldn't count towards 100 %: Those are rapid-fires, lives, ..., they don't seem to be treasures. If we are concerned about these, then Sluggion 2 warrants the same concern.

Anyway, I just played Deserto 1 on Medium in 1.3 and got 100 % enemies, 100 % items. It's good as-is.

The Deserto lizard spawner is event #13 in level1.037... I don't remember if it appears in level0 too.

Deserto 1 has lizard-spawning sparkles in good 1.2 in the final strip towards the exit sign, after the castle. These sparkles are missing in 1.3. Interesting version difference that I didn't know yet! Haven't examined Deserto 2 (= level1.037) yet.

Will work on Orbitus now.

-- Simon

Simon
Apr 21, 2021, 12:47 PM
Here is the promised Orbitus 2 fix, version 2021-04-21 (http://www.lixgame.com/etc/orb2fix-2021-04-21.zip).

Tested on Medium difficulty in 1.3, I got 100 % enemies and 100 % items.

This is physically like version 2020-10-18, but I recolored the bouncy floors to match exactly the vanilla 1.3 Orbitus 2 floor colors. I.e., it fixes a coloring mistake that I introduced in 2020-10-18. Changed the out-of-bounds text blocks to read 2021-04-21.

Image: Vanilla 1.3 Orbitus 2 (http://www.lixgame.com/etc/orb2vanilla13.png)
Image: Orbitus 2 fix 2020-10-18 (http://www.lixgame.com/etc/orb2fix.png)
Image: Orbitus 2 fix 2021-04-21 (http://www.lixgame.com/etc/orb2fix-2021-04-21.png)

-- Simon

Simon
Apr 21, 2021, 08:36 PM
Battleships 2, 51/12/29/29

I've found improvements over this: I've moved my reply to fresh thread. (https://www.jazz2online.com/jcf/showthread.php?p=494557#post494557) The 100% research will be surprisingly complicated!

Let's keep the general playability issues in this thread, and the 100% problems in the new thread.

-- Simon

Love & Thunder
Apr 22, 2021, 09:03 AM
Right.

So, we currently have:

Your latest Orbitus fix (http://www.lixgame.com/etc/orb2fix-2021-04-21.zip)
The alternate CONF/batch launcher I posted back on page 1 (https://www.jazz2online.com/jcf/showpost.php?p=494381&postcount=29) (which looks like this (https://i.imgur.com/1NRB4ao.png) in action)
My fix of Medivo 2 (https://www.mediafire.com/file/z1gxqr8hbqo00lj/LEVEL0.002/file)
Turtemple 2 and Pezrock 2 from Good-1.2 (http://www.lixgame.com/etc/ditch-fixes-tur2-pez2.zip)
For goodies:

Original 1.0 floppy disk release
Early 1.2a CD release
Unmodified 1.3 CD release




And we're now working on:

Fixed 100%ability for Tubelectric 2, Nippius 2, Battleships 2, Deserto 1, and possibly Deserto 2 (other thread for details)
Possibly the manuals as goodies? I have PDF copies of some unofficial scans of the manuals for JJ1 and JJ2 that were posted on the GOG forums, but I don't know if those would be allowed (certainly they aren't ideal).


I don't think the 100%ability should be difficult or time-consuming to do, so I think if we can figure out good 100% numbers for those levels, we should be good to ship the patch. :)
If we can figure out an arrangement for the manuals before everything else is ready, that would be great to send along, but I feel like goodies don't need to update at the same time as the main game is patched, so we can always figure that out later.

Simon
Apr 22, 2021, 09:40 AM
Right.
So, we currently have: (list)


Yep, you've listed all fixes that I can think of!

The plan for the extra versions (1.0, good-1.2, vanilla-1.3) is to ship them alongside, but not make them selectable in the launcher. If somebody wants to play these, they'll have to mount them manually in Dosbox.

And we're now working on: Fixed 100%

Right, let's see what we can get into the same release. The 100% topic is on good track. (https://www.jazz2online.com/jcf/showthread.php?t=20456)

Possibly the manuals

I have nothing good to provide here, the German manual wouldn't be of much use. Let me know if you find something nice.

More stuff to do that isn't bugfixing:
When the release is due, let's write a readme/history file that lists the exact changes based on 1.3. This is mainly for ourselves, and for future maintainers. (I'll document the changes on lixgame.com/jazz afterwards anyway, but it's better to also have them in a readme.)
I'll play through the entire patched Jazz on livestream, to check that it's all solvable. Let's agree on a date once the release is ready.

Love & Thunder
Apr 23, 2021, 01:11 PM
The plan for the extra versions (1.0, good-1.2, vanilla-1.3) is to ship them alongside, but not make them selectable in the launcher. If somebody wants to play these, they'll have to mount them manually in Dosbox.
Oh? When was this agreed?

Surely it makes more sense to put them in goodies if possible, since then people may actually see them, and they're not sort of "hidden"? Plus people who don't care aren't then installing four different versions if they're only going to play one.


I have nothing good to provide here, the German manual wouldn't be of much use. Let me know if you find something nice.

Jazz 1 manual (http://www.zerker.ca/home/files/Jazz.pdf)
Jazz 2 manual (http://www.zerker.ca/home/files/Jazz2.pdf)
Courtesy of this thread on the GOG forums (https://www.gog.com/forum/jazz_jackrabbit/original_manual_scans_with_comics_here).

I also got this other scan of Jazz 1's manual (https://www.mediafire.com/file/yozqrfsw1ezyl06/_Jazz1Handbook-opt.pdf/file) from somewhere. Can't remember where. May have been on the GOG forums at some point too.



When the release is due, let's write a readme/history file that lists the exact changes based on 1.3. This is mainly for ourselves, and for future maintainers. (I'll document the changes on lixgame.com/jazz afterwards anyway, but it's better to also have them in a readme.)
I'll play through the entire patched Jazz on livestream, to check that it's all solvable. Let's agree on a date once the release is ready.


These sound very good! :)

Simon
Apr 23, 2021, 09:55 PM
put them in goodies if possible, since then people may actually see them, and they're not sort of "hidden"? Plus people who don't care aren't then installing four different versions if they're only going to play one.

You're right, as goodies is better.

The point is that a default install gives prominently only the GOG0002, and the 1.0, 1.2a, 1.3 are somehow possible to pick if one explicitly wants them.

Hmm, the naming. "GOG0002" comes from when I had plans to edit the JAZZ.EXE, but we won't do that. Thus, will a name GOG0002 or GOG2 stick? I'd like to call it something different than 1.4, to clearly distinguish versions from the 90's from today's patching. Or 1.3.1, hmm, that still feels too authoritative.

-- Simon

Love & Thunder
Apr 24, 2021, 06:08 AM
You're right, as goodies is better.

The point is that a default install gives prominently only the GOG0002, and the 1.0, 1.2a, 1.3 are somehow possible to pick if one explicitly wants them.

Hmm, the naming. "GOG0002" comes from when I had plans to edit the JAZZ.EXE, but we won't do that. Thus, will a name GOG0002 or GOG2 stick? I'd like to call it something different than 1.4, to clearly distinguish versions from the 90's from today's patching. Or 1.3.1, hmm, that still feels too authoritative.

-- Simon
I don't think the name is important, but if we really want to have one, "The GoG patch" will suffice, I think.

Violet CLM
Apr 24, 2021, 07:00 AM
GOG contact: "I think that this minor change doesn't require changing the displayed text."
reminder, GOG is only expecting to replace a few level files, not to advertise it as a new version

Love & Thunder
Apr 26, 2021, 03:49 AM
reminder, GOG is only expecting to replace a few level files, not to advertise it as a new version
Indeed.

And in fairness, the changes are quite minor; one small section of one level is rearranged a bit, a couple of other levels have one event's sprite parameters changed, and a few more have the 100% numbers changed slightly, so it's not exactly a "new version".

Simon
Apr 28, 2021, 03:03 PM
"GOG Patch" is perfectly fine with me. :cool: Or "GOG Patch 1".

Gog can advertize it or not as they like, yeah. It's merely not the 1.3 anymore and needs a name. When I document the changes on lixgame.com/jazz, I'll call it something anyway, so it's good to pick something now and have the release's readme agree with how I'll call it.

-- Simon

Love & Thunder
Jul 23, 2021, 11:03 AM
I sent my fixed version of Medivo to someone on the Jazz Discord, and they pointed out a major problem with it (I forgot to reset the start position!). I've fixed this now, here (https://www.mediafire.com/file/g0q8ct1ucnsjwwq/LEVEL0.002/file).

So, here's the current contents of the patch, updated to use a link to the new, fixed version of Medivo:

Your latest Orbitus fix (http://www.lixgame.com/etc/orb2fix-2021-04-21.zip)
The alternate CONF/batch launcher I posted back on page 1 (https://www.jazz2online.com/jcf/showpost.php?p=494381&postcount=29) (which looks like this (https://i.imgur.com/1NRB4ao.png) in action)
My fix of Medivo 2 (https://www.mediafire.com/file/g0q8ct1ucnsjwwq/LEVEL0.002/file)
Turtemple 2 and Pezrock 2 from Good-1.2 (http://www.lixgame.com/etc/ditch-fixes-tur2-pez2.zip)
For goodies:

Original 1.0 floppy disk release
Early 1.2a CD release
Unmodified 1.3 CD release

abgrenv
Dec 14, 2021, 10:18 AM
Will the moving spike balls from Pezrock and spikes from Exoticus be removed from the enemy count? I think one of the Exoticus levels has an unreachable enemy anyway, but counting spikes and environmental hazards with a ton of HP as enemies doesn't feel right.

Levels I know of or remember, where it's impossible to get 100% are:
Tubelectric 2
Nippius 2 (unless you cheat with a hoverboard)
Jungrock 1 & 2
Sluggion 2 (thanks to the unreachable section of the map)
Dreampipes 2 (unless you use cheats to get dynamite for the last 2 unreachable enemies)
Battleships 2 (unless you use a hoverboard)
Exoticus
Rainforus (not sure if you naturally get dynamite or have to use cheats, but without them, certain enemies are almost impossible to get)

also, unless the GOG version messed something up, I don't remember either Deserto levels being impossible to get 100%
I clearly remember getting all items and kills in those levels (though I was playing the version that has the extended Tubelectric 2, properly functioning Orbitus 2 level, broken Marbelara secret level and has the invisible spring removed from all levels they were in

Zerodarkage
Aug 8, 2024, 07:02 PM
Very sorry for necroposting...

Any of you knows how to update "JJ1 Holiday Hare 95 added to 1.3" MOD?
Author: crash4smash
Source: https://www.jazz2online.com/downloads/8023/jj1-holiday-hare-95-added-to-13/

I tried really hard to use the latest files from GOG (2.0 CSv2 Patch 2)
But the game crashes after the third level.
I don't know how to update "SPRITES.060, SPRITES.061 and SPRITES.062"
And there is something about broken checksum on the updated levels
(using Jazz 1 Layout Editing Suite to modify GOG HH95 levels)
Could anyone update this MOD or give some tips how to fix the sprites files to match the GOG fixed ones???

Thanks in advance! :)

Zerodarkage
Aug 9, 2024, 07:58 AM
This is the best I could do xD
"JazzHolidaySharewarePatchModeBeta.zip"
https://www.mediafire.com/file/lsmje4c9a0j3xeo/JazzHolidaySharewarePatchModeBeta.zip/file

Know Bugs:
The Red Rabbit has one "invisible frame". Most of time from left to right.

RSGDB
Aug 26, 2024, 01:35 PM
There you go:
https://www.jazz2online.com/downloads/9416/extras-for-jazz-jackrabbit-community-patch-2/