Jul 21, 2020, 02:21 AM | |
GOG's Jazz 1.3: Fix bugs, add versions
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. Possible fixes for Jazz 1.3:
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 Last edited by Simon; Jul 21, 2020 at 03:35 AM. |
Jul 21, 2020, 06: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), 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), 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: (Though I now realise it says "What game do you want to run?", even though four of the seven options are not games. 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. Last edited by Love & Thunder; Jul 21, 2020 at 10:07 AM. Reason: New link. |
Jul 21, 2020, 10: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 |
Jul 21, 2020, 11:00 AM | |||
Quote:
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) Quote:
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) Last edited by Love & Thunder; Jul 21, 2020 at 11:33 AM. |
Jul 21, 2020, 12:03 PM | |||||
Quote:
I'm happy, too, that odd sprites on airboard ditches won't be a problem just in case. Quote:
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. Quote:
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. Quote:
-- Simon |
Jul 21, 2020, 01:41 PM | ||||
Quote:
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). Quote:
So, I guess the decision on Tube 2 is that we use the 1.3 version. Quote:
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. |
Jul 25, 2020, 08:11 AM | |||
Quote:
Quote:
We should also consider the legal issues:
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 |
Jul 26, 2020, 01:54 PM | |||||
Quote:
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. Quote:
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. Quote:
Quote:
There is always the possibility GOG will elect to enact no fixes at all, but IDK. |
Jul 27, 2020, 01: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:
Thus, I interpret:
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! Quote:
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. Quote:
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 Last edited by Simon; Jul 28, 2020 at 03:21 AM. |
Jul 28, 2020, 07:25 AM | |||||||||
Quote:
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. Quote:
Quote:
Quote:
In any case, in 1.3, you would be wrong about Orbitus's floors being exactly the same as the invisible springs: 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. 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). 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. Quote:
Quote:
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. Quote:
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. Quote:
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'm pretty busy these days, but I'll try to prod you on IRC when I have time! Last edited by Love & Thunder; Jul 28, 2020 at 07:36 AM. |
Jul 29, 2020, 12:49 AM | |
wow I absolutely love this! You guys do god's work.
__________________
Join clan [GPW]'s discord! https://discord.gg/ktCcYnv S.H.A.D.O.W.: (aka Ins0mnia) Synthetic Hydraulic Android Designed for Observation and Warfare Mystic Legends http://www.mysticlegends.org Follow me on twitter: @Ins0mnia Follow us on twitter: @Mystic_Legends |
Jul 29, 2020, 01:56 PM | ||||
Quote:
Downsides of this hack:
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. Quote:
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. 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 Last edited by Simon; Jul 29, 2020 at 02:15 PM. |
Aug 1, 2020, 02: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. Last edited by Madge; Aug 1, 2020 at 02:38 PM. |
Aug 2, 2020, 02: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.
Quote:
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. Quote:
Quote:
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. Quote:
I still haven't put good-1.2 levels into 1.3, I should experiment with that next! Maybe they'll fix ditches. -- Simon Last edited by Simon; Aug 2, 2020 at 02:39 PM. |
Aug 14, 2020, 10:21 AM | |||||||||||
Thanks.
Quote:
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. Quote:
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. Quote:
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! Quote:
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. Quote:
Quote:
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. Quote:
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. Quote:
Quote:
Quote:
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. |
Aug 21, 2020, 04: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 |
Sep 7, 2020, 10:22 AM | ||
Following a few logistical issues in conversation, I have this response for you:
Quote:
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. |
Sep 9, 2020, 10: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 |
Sep 14, 2020, 10:26 PM | |
If we sitck with modifying 1.3, the battle plan for GOG 0002 is:
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 |
Sep 15, 2020, 04: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.
|
Sep 18, 2020, 12:40 PM | |
GOG contact: "I think that this minor change doesn't require changing the displayed text."
|
Sep 20, 2020, 06:46 AM | |||
Quote:
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. Quote:
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. Last edited by Love & Thunder; Sep 20, 2020 at 08:17 AM. |
Sep 23, 2020, 01: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.
__________________
Add SlazRabbit on Xbox Live if you want to play some GoW1/2/3/J or Destiny1/2. Jazz Jackrabbit 2 Forever!! Civilian Defence Force - Jazz2 Visual Fantasers |
Oct 13, 2020, 10: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. |
Oct 15, 2020, 12:22 PM | |
Here are the ditch fixes for Turtemple 2 and Pezrock 2. 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 |
Oct 18, 2020, 10:25 AM | |
Download Orbitus 2 fix 2020-10-18 -- 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: ^ Level layout in vanilla 1.3. Now the fix 2020-10-18: ^ 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. ^ All sounds play according to my testing, and it's still 100-%-able. ^ 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 |
Nov 2, 2020, 12:00 PM | ||
Quote:
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. Code:
[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 exit 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: 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? Last edited by Love & Thunder; Nov 2, 2020 at 12:10 PM. |
Nov 9, 2020, 10: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:
-- Simon |
Nov 10, 2020, 09: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:
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:
(Sorry for the long post. I'm eager to make sure every detail is examined and scrutinised so we get this right! ) Last edited by Love & Thunder; Nov 10, 2020 at 09:59 AM. |
Nov 10, 2020, 12:17 PM | |
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 Last edited by Simon; Nov 10, 2020 at 12:36 PM. |
Nov 10, 2020, 02:11 PM | ||||||
Quote:
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. Quote:
The way I see it, it's already provided, so it should probably be left in. Quote:
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. Quote:
Quote:
|
Nov 11, 2020, 07:52 AM | ||
Quote:
|
Nov 11, 2020, 07:08 PM | ||
Quote:
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. |
Nov 12, 2020, 07: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.
|
Nov 28, 2020, 11: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. |
Dec 8, 2020, 12:35 PM | |
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%:
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 |
Apr 13, 2021, 08: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? |
Apr 18, 2021, 12:58 AM | |
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 |
«
Previous Thread
|
Next Thread
»
Thread Tools | |
|
|
All times are GMT -8. The time now is 03:04 PM.
Jazz2Online © 1999-INFINITY (Site Credits). Jazz Jackrabbit, Jazz Jackrabbit 2, Jazz Jackrabbit Advance and all related trademarks and media are ™ and © Epic Games. Lori Jackrabbit is © Dean Dodrill. J2O development powered by Loops of Fury and Chemical Beats. Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Original site design by Ovi Demetrian. DrJones is the puppet master. Eat your lima beans, Johnny.