scoopex presents wrath of the demon cracked, fixed and trained by stingray/scarab*scoopex unlimited shield potions unlimited zap potions unlimited healing potions unlimited energy in-game keys trainer info/game manual release diary/cracking notes start game hd-install (whdload) is on disk 4! a scoopex release in 2021 happy new year! scoopex is back on your screen with another fine release. this time we decided to create a proper version of wrath of the demon, as usual cracked, trained and 680x0 fixed. and on 4 disks just like the original. all work done by stingray over a span of 13 years (the first line of code for this release was written in july 2008). the game should now hopefully work on all amigas. applying the trainers and fixes was quite tricky as the game uses almost the complete 512k memory. more info can be found in the trainer menu. greetings to all active amiga sceners, personal regards to alpha one, ross, galahad, motion, frequent, break, slummy, wayne kerr, brainwalker, rog, corial, skan, musashi5150, krill, dalezy, mad, nero, mr. spiv, browallia, sensenstahl, aszu, sachy, 4play and everyone i have forgotten. have a happy new year everyone! scroller restarts... crack intro by spaceballs and planet jazz slummy * tecon * menace scoopex presents wrath of the demon Cursor up/down to scroll screen Escape or left mouse button to return to menu Trainer Information: -------------------- In-Game Keys: I: Toggle unlimited Shield Potions S: Get Shield Potion U: Toggle unlimited healing potions H: Get Healing Potion D: Toggle unlimited Zap Potions Y: Get Zap Potion E: Toggle unlimited Energy W: Get Weapon (last level only) HELP: Skip Level Game Fixes: ----------- All interrupts fixed for 68040/60, CPU dependent delay loops fixed, illegal memory accesses in level 11 fixed. "Drawing you to it's lair" grammar mistake fixed! Applying these fixes was not trivial as the game uses almost the complete 512k memory! Game Manual: ------------ Wrath of the Demon, (c) 1991 ReadySoft INTRODUCTION The wizard, Anthrax, lit the last candle completing the circle around him. Thirteen flames burning above thirteen waxen heads flickered in an unfelt wind; a plume of colored smoke rising from each to form a churning cloud in mid-air. Anthrax lifted his arms into the cloud and began to mutter an ancient spell, causing the smoke to swirl wildly, spitting forth flashes of light that filled the room with an evil energy. As the wizard continued his incantation, an image began to materialize in the raging storm above, an evil twisted image, not that of a human but of a Demon long thought dead. The Demon spoke like thunder booming loudly in the wizard's ears, "Who disturbs the Demon's sleep?! What creature thinks himself so powerful as to risk the Demon's fury?!" Anthrax tried to scream over the torment building in the room, "It is I, Anthrax, court wizard to his Majesty the King, who summons you to perform my bidding!" The words were almost lost in the rushing wind, "I command you to destroy the King and make his realm mine!" The Demon laughed, the sound of thunder exploding over a mountain range, "Kill the King I shall and capture his domain I will, but not for you, insignificant worm!" Lightning erupted from the circling cloud striking the Wizard and reducing his body to a smouldering pile of ash. The cloud began to grow, spilling from the tower's windows, flowing up into the sky. It spread its tendrils, blotting out the sun to make the land as dark as death. An evil rain poured down upon the earth and set the ground afire, spreading from dirt to rocks, rocks to trees, trees to man. The Demon's minions leapt from each flame, springing forth as hideous monsters to devastate the inhabitants of the doomed Kingdom. In an instant the entire realm, as far as the eye could see, was burning; the smoke from a hundred thousand dying souls rising up, lost on the blowing winds. As quickly as it had begun the deadly storm receded into the castle that had witnessed its birth. The once prosperous Kingdom lay ruined, nothing left alive but a single bird forgotten in the Demon's blind wrath. Months turned to years, years to decades and the memory of the ruined Kingdom was lost like dust on the wind. All that remained was a lone castle, the seat of power from where a King once ruled. After a time, men wandered into the wasteland and a new Kingdom arose ruled by another King. All the while the Demon continued his sleep, waiting as he recovered the energy he had spent. The land was his now and the Demon kept a watchful eye one these inhabitants as they populated the land. Within a few generations the Kingdom had grown as mighty as the one that had stood many years before. And as it grew, so did the uneasiness of the Demon's sleep until finally the evil one sensed the time had come to once again wreak destruction. In the hollow of a tree, a good faery awoke from a terrible nightmare. In her dream she had seen a vast horde of pillaging monsters moving across the land like an unstoppable plague. The face of a powerful Demon reached the recesses of her mind, lingering long after the nightmare was over. Fearing the dream a premonition of real danger, the faery began preparing magical potions and spells that might defend the realm against such an evil attack. The King must be warned, she thought, and someone must find the Demon and destroy it. Even as the faery worked, the deadly hands of the Demon reached out from the castle delivering one of its minions to entrap the faery and keep her captive until the Demon could rise. As the faery was being captured she sent out a mental plea for help to the King, that some brave warrior might be sent to rescue her. The King received the message and did as the good faery requested, calling upon his most trusted messenger to relay a command to the honored knight the King had selected. The messenger sped into town with only one thought in mind - to deliver the Royal Scroll he carried. The Demon was watching though, and again released one of its monsters to kill the messenger before he could complete his mission. The flying monster appeared above the roofs of the town and found the messenger running along a road. Nearby, a chance visitor strolled along the road in search of lodging for the night. Noticing a strange shadow pass along the ground, the stranger glanced up to see the Demon's minion fly past overhead. "That thing had blood in its eyes and death in its heart," he thought, "I must see what evil it might do." The stranger ran down an alley and stopped in the safety of the shadows at a corner between two buildings. He crept back as the messenger came running, chased by the flying monster. Too late to intervene, the would-be hero could only watch as the monster ripped at the other's man throat leaving him dead in the center of the road. In the messenger's hand the stranger found the Royal Scroll depicting the Kingdom's plight. Here your quest begins. After travelling to the palace, the King instructs you to ride forth and defend the realm. The King promises you the hand of the Princess in marriage should you succeed in your mission. Even now the evil horde is crossing the land and will try to end your journey. The King calls out as you prepare to leave, "Only you can save my Kingdom from the horde! Only you can deliver us from the grasp of the Demon!" And so you gallop towards the horizon where a black, evil cloud has begun to spread across the darkening sky... STARTING THE GAME After the game has loaded, the intro will automatically begin (Amiga). You can skip it (after you've admired it at least once...) by pressing the FIRE button at any time. You will then be returned to the title page. Pressing the FIRE button again will skip the scrolling text and start the game right away. CONTROLLING THE HERO Use the joystick to control the Hero's movements. The controls of the Hero are divided into two parts: the Action Scenes and the Fighting Scenes. CONTROL FOR THE ACTION SCENES Jump/Enter Door | | | | | Move Left --------------- Move Right /|\ / | \ / | \ / | \ Roll/Duck / | \ Roll/Duck Crouch/ Pick Up Pressing the FIRE button will PUNCH. If you have a special weapon in your possession, pressing FIRE will use the weapon rather than punching. Moving the joystick up or down will normally cause the hero to jump or crouch. If you are standing in front of or against a door, however, moving the joystick up or down will make the hero enter these doors. CONTROLS FOR THE FIGHTING SCENES Jump/Smash | / Hit High | / | / | / |/ Move Left ------------------ Move Right/Hit Straight |\ | \ | \ | \ | \ Hit Low Crouch/Hit Down You can use the joystick to move the hero. Holding the FIRE button down will give you access to the sword movements. KEYBOARD FUNCTIONS Press the F1 key to use a Shield potion; the F2 key to use a Zap potion; and the F3 key to use a Healing potion. You can pause the game at any time by pressing 'P' key on the keyboard. To continue to play, press the 'P' key again and the game will resume. ENERGY SYMBOL AND POTIONS During the game you will notice a circular symbol around a face on top left of the screen. This represents the energy of the hero. When the twelve circles around the face become empty, the hero will die. On the bottom right hand side of the screen, there are three different symbols with numbers under each. The first one represents your Shield potions; the second one, your Zap potions; and the third one, your Healing potions. The numbers under them represent the number of potions that you are carrying. Please note that you can't carry more than three potions of each kind. SHIELD POTIONS: The hero will become immortal for three seconds. ZAP POTIONS: Every monster around the hero will die or lose some energy. Unfortunately some monsters won't be affected by these potions due to their constitutions. HEALING POTIONS: The healing potions will cure all your wounds and restore your energy to its maximum. KEYS AND ADDITIONAL WEAPONS At some point during the game, you will find keys and additional weapons. To use the keys, punch in the locks or push the joystick in the direction of the door. The door will automatically swing open. The additional weapons will become active only when needed. You can use them by pressing the FIRE button. SAVING YOUR POSITION To save your position press CTRL-S when there is scrolling text being displayed on the pictures between each of the scenes. You will then be prompted to insert a Save Disk. Remove the Wrath Disk from the internal drive, insert the Save Disk and press RETURN. A menu will appear asking you to select a letter under which to save your position. You can save up to ten different games on your Save Disk. If a save location is already used, the position you saved will be shown, otherwise 'EMPTY' will be displayed. If all of your save location are used, you can save over an existing one or use another Save Disk. After selecting your location, press RETURN. You will then be prompted to insert a Wrath disk. Insert any of the Wrath of the Demon disks and press RETURN. Pressing ESC when prompted for Save location will cancel the save process. NOTE: Any data on your Save Disk will be ERASED. Be sure to use a blank disk or one that you will use only to save your positions onto. Also it is unnecessary to format the Save Disk (Amiga/ST). LOADING A SAVED GAME To Load your position press CTRL-L while the text is scrolling on the King picture (the picture following the title screen). Next, you will be prompted to insert your Save Disk. Remove the Wrath Disk from the internal drive, insert the Save Disk and press RETURN. A menu will then appear showing you the name of your previously saved positions and asking you to select the letter corresponding to the position to Load from. If a save location is already used, the position from where you saved will be shown, otherwise 'EMPTY' will be shown. Select a location and you will be prompted to insert a Wrath disk. Insert any Wrath of the Demon disk and press RETURN. Note: By pressing ESC when prompted for a Load location, the loading process will be cancelled. RESTARTING THE SCENE If the hero dies in one of the scenes, you can restart the same scene by pressing the FIRE button when the text is scrolling on the Death picture. You will restart the scene with the same number of potions as you had when you originally began the scene. If you don't press the FIRE button, you will return to the beginning of the game. ENDING THE GAME To stop playing the game simply reboot your Amiga by pressing the CTRL key and the two AMIGA keys (on some machines the COMMODORE Key and the AMIGA Key) at the same time. The screen will go blank and you may now eject the disk from the drive. GENERAL HINTS ABOUT THE GAME 1. Try to keep your potions, you'll probably need them badly as you progress. 2. To defeat the various monsters, you will find that you must develop different strategies for each of them. 3. Try to stay far away as possible from the monsters. 4. Never let a monster push you in a corner. 5. At certain points during the game, it is recommended that you make a map of the surroundings. 6. Some monsters carry potions that can be collected by killing them. 7. Sometimes it's better to try to avoid a monster rather than trying to kill it. 8. Most of the time, switches activate mechanisms. 9. Save between each of the scenes. 10. When in the castle, you always view the North and East walls. FEATURES OF WRATH OF THE DEMON Total Size: 600 screens of action Graphics Data: 3.5 Megabytes Music & Sound Data: 600 kilobytes Music Sample Rate: 20 kilohertz Number of different sound tracks: 9 Screen Update: 60 times a second No. of different monsters: 120 Maximum Sprite Size: 300 by 144 pixels Project Duration: 10 months Cursor up/down to scroll screen Escape or left mouse button to return to menu Preface, 30.12.2021 ------------------- The following notes were taken when I worked on the release. It is not a complete diary as I had the idea to do something like this very late. This release was started back in 2008 when I decided to look at the game when I was bored at work. I checked the game code and coded a replacement for the MFM decoding routine, adapted the loader to use my very own MFM decoder and load standard $1600 bytes Amiga DOS tracks instead of $1900 bytes custom long tracks. All this was done at work and once I knew that my approach worked, I started to read all files from each of the 4 disks, decrunched them and repacked them, first with CrunchMania and later with Rob Northen's ProPack as that had a much faster decruncher. I may release some of the sources on my Github, which you can find at the following link: https://github.com/MK1Roxxor Some stats: Working time: July 2008 - December 2021 Number of source files: 28 (excluding the crack intro) Different crunchers tried: 3 Hours spent testing the game: too many Now on with the notes that were written down when I worked on the game. StingRay in December 2021 "Wrath of the Demon", proper crack, diary 22.03.2018 Today I have restarted the work on this game after quite some time. Checked what is left to do and tested the old version. Had to deal with some crashes, turned out this was caused by the "In-Game Keys" routine. 24.03.2018 Fixed the CPU dependent delay in keyboard routine and also the level 2 interrupt acknowledge. Disassembled level 2 code and patched the level. Patched level 3 code, checksum check needed to be disabled. Detected a problem with disk change once load/save has been used, adapted 2 more "Load Track" routines to load track 0 (my version stores disk number at offset 1023 in track 0) but that didn't fix the problem, I need to adapt my disk change patch. 25.03.2018 Patched level 4 (Cave) and tested it, after a while the joystick didn't work anymore so there was another checksum check to remove. Tested the complete level (which was quite boring) and there were no problems. Same for level 5 (Cave Guardian), graphics trash after a while, also caused by a checksum check. Level 6 (Swamp) patched too, crashed first because of a typo for the Copper Interrupt acknowledge fix but then worked fine. All files for disk 1 and 2 have been processed now. 26.03.2018 Patched level 7 and sort of hit a wall because the added file tables for disk 3 exceeded the available space for patches. 27.03.2018 Fixed the wrong entry point for level 7 (caused because trainer code used BASE+$8000 (size optimising)). Also fixed an access fault but there were still strange graphics problems. Checked the disk 3 files and noticed that some were not packed anymore. Which was the reason for the graphics problems. Disabled a memory trasher in level 2. Added the "insert disk" picture for disk 1, it's probably never used but since there is enough space on disk it doesn't hurt to have this file included. Also patched the file table for the 4 "insert disk" pictures. 28.03.2018 Today I patched all disk 4 files and created the last disk. Slowly but surely we are getting somewhere! Tested the load/save routines as I didn't always want to level skip the levels when testing. Graphics problem in level 9 fixed, it was caused by yet another file which wasn't packed. Added a check in the routine which converts the loader params and wasted much time trying to find out if there was a file missing/not found. Gave up after a while and thought it could be wrong file data which is loaded so I added a check in the ProPack decruncher, if it was called with an unpacked file it would show an error screen. And lo and behold, there indeed was a call to the decruncher with an unpacked file. Other ideas I had today which are not yet implemented: - debug screen in case of error (we have 424 bytes for this) - hd install option - 3 disk version (but this will not work as we need 802884 bytes (size of data on disk 4) free disk space on disks 1-3 which we don't have 29.03.2018 Because I was still curious to see if there are any files which weren't found in the "AdaptLoaderCalls" routine I added an error table and stored all files which weren't found there. There were several errors, once checked it turned out they were all the "Insert Disk" binary. After thinking a bit about that it made perfect sense. The loader call was already patched when disk 1 was processed (this file needs to be at the same position on all disks!) hence the comparison failed for disks 2-4. Removed this file from the tables for disks 2-4 then and still discovered errors for the same file, checked the file tables and saw I had stored it several times. Removed all references to this file then and error table was empty then! Once this was done I worked on the fix for the level 3 problem, first I removed all patches and the level worked correctly then (more or less, due to the checksum check player died but at least music was played). Thought it might have to do with the trainer code and changed it to save all registers and tested again, replayer problem was still there. Then I checked the patch code and noticed the "skip cartridge check" patch was wrong, it accidentally skipped the replayer call too. Fixed it and tested again, level 3 works fine now! During my tests I also discovered how to make the game crash during the intro part (I experienced random crashes from time to time before), once fire was pressed during loading and black screen, the game crashes. Checked if it happens in the original too and of course that wasn't the case. Will need to investigate what the problem is. 01.03.2020 Two years really went by fast... I have restarted the work on the Wrath of the Demon crack as I really want to finish it this time! I have worked on it for far too long (first lines of code were written back in July 2008) for it to remain unreleased. Took some minutes to get back into it but after a while I remembered almost everything and could restart work easily. First things I did were just cosmetic changes in the sources, as originally I crunched all files using CrunchMania but later changed to RNC ProPack as it decrunched much faster I still had a CRMDepack label in the source, all CRM references have been changed to ProPack. I then tested all levels and, much too my excitement, they all worked properly. However, once the end boss was defeated, a disk 1 request appeared but disk 1 was not recognised. After a bit of debugging I tracked down the problem and changed/extended my "store disk ID" patch in the MFM decoder which fixed the problem nicely. A while later I used a completely new approach which didn't use any fixed address comparisons but instead checks from where the MFM decoder was called, if it was called from the "Request Disk" code it stores the disk ID. While testing all levels I also noticed a typo/grammar mistake in one of the scrollers: "As you defeat the demon's guardian you feel the wrath of the Demon drawing you to it's lair." The "drawing you to it's lair" really annoyed me so I fixed it to the correct "drawing you to its lair". We are slowly getting this crack finished, there is not much left to do: - check why the game crashes if fire has been pressed during intro - check why there is some graphics trash when loading in a certain level - some graphics trash also appears when using level skip in the last level - code a trainer menu - maybe add an option in the trainer menu to install the game to HD (save all disk images and a WHDLoad slave) - maybe add an option in the trainer menu to show the documentation and/or parts of my diary 02.03.2020 Today I tried to find the reason for the crash in the intro part when fire was pressed at "wrong" times. Tracked it down to a fire button check in the loader which skipped decrunching data. Not sure why it works in the original game but the solution for now has been to simply disable the fire button check in the loader. I have also started to create a WHDLoad version which didn't take much time as I have fixed everything in the disk version already so only patching the loader was necessary. Only problem was a freeze in the intro, this has been fixed by enabling all DMA after loading (game disables certain DMA and interrupt channels when loading) which fixed the freeze but caused a copperlist fault. Will check that tomorrow. 03.03.2020 The copperlist fault was fixed by just enabling blitter DMA instead of copper, blitter and bitplane DMA after loading. I have tested the WHDLoad version and detected an access fault in level 11 ("The Castle"). This was quickly tracked down to a not properly clipped offset register, in the original code and.w #$ff,d0 was used and then d0.l was used. I have fixed this by replacing the and.w #$ff,d0 instruction with a ext.l d0 nop sequence (and.l #$ff,d0 would have been too large and I didn't feel like adding more additional patches). I have also thought about improving the level skip in later levels, I may store the last played level somewhere and depending on that value skip to the correct level. Soon I will start coding the trainer menu, the current idea is to take the tunnel of my FAP 2014 bootblock intro as background effect, add a SCOOPEX logo and a (transparent) trainer "window". Another idea I had while testing the WHDLoad version: take a picture from the game and use that as background, use the scroller font from the game to write the scroller and/or trainer text. That way the trainer menu would really fit the game (and also very easy to code) but I'm not yet sure which idea I like more. I may code both versions! I also need to think about how to best add the WHDLoad patch, maybe an option in the trainer menu or a hidden command line option. I also need to think how I add the patch, just the slave (and people have to install disks on their own) or a complete lha archive with all the required data such as the install script, icons etc just like the offical WHDLoad patches. I will, most probably, go for the latter option. 04.03.2020 Today I didn't work much on WOTD, I only updated the disassembly of the main code a bit. 05.03.2020 Today I started the work on the crack intro/trainer menu. 06.03.2020 A bit more work on the trainer menu, added a Scoopex logo by Alien and adapted the code a bit. 09.03.2020 Tried to fix the "press fire" problem in the loader, adapted a few file length values but problem still exists. 21.11.2021 Included the crack intro I got from Slummy earlier this year. Doesn't work yet though, crashes during decrunching. 22.11.2021 Included the crack intro unpacked, works! 23.11.2021 Today I tried if the options set in the trainer menu are used correctly in the game, test was successful. Later I coded a tool to save the trainer menu without the large BSS areas. When the trainer menu is relocated to a fixed address (currently $20000), all BSS areas are converted to large empty memory areas, so the resulting binary has a size of over 300.000 bytes. But these empty areas do not need to be stored at all, so I added an "ID" in the executable ("SCRN"), which is exactly at the beginning of the BSS section. That allows searching for that very ID and saving a new binary which does not contain the empty memory areas. When testing my tool there were some problems, first ReadArgs did not work, later text output with VPrintF did not work correctly. This was caused by incorrect offsets in my "dos_lib.i" INCLUDE. I had adapted this INCLUDE in 1998 and added the offsets for DOS V37+, but I missed that 2 times an offset had to be ommitted. This resulted in incorrect offsets for _LVOReadArgs and _LVOVPrintF. 24.11.2021 In-Game keys are now displayed in the trainer menu. 25.11.2021 Didn't do much today, started working on the text writer for displaying the game manual. 26.11.2021 Routine for displaying the manual is no longer called directly when the corresponding menu item is clicked, instead a flag is set and evaluated at the beginning of the main loop (just like Slummy handled the "Start Game" item). Routine is still not finished though, I'll tackle that today. 27.11.2021 Today I more or less finished the routine to display the docs. Among other things, I added missing characters in the font (or created special case code to output the missing characters) and changed the screen to hires (640x256) so that as much text as possible can be displayed. Slummy uses a screen with a width of 256 pixles for the "normal" trainer menu which is not optimal for displaying a manual. What's still left to do: Thinking about the best way to switch pages and how to get back to the main menu. 03.12.2021 Completely rewritten doc reader is almost finished, scrolling up and down doesn't work properly yet and the keyboard handling is missing. 04.12.2021 Keyboard interrupt added to the doc reader. 11.12.2021 Made the doc reader 100% pc relative. 12.12.2021 Briefly looked into putting DOS files on disk 1, cleaned up the code a bit in the process. 13.12.2021 Continued to look into putting DOS files on disk, tested several tools for this, e.g. Sector Trasher by Silents (not usable for my purposes), TrackDOS by Nic Wilson (doesn't do exactly what I need either). Started to code the installer for the WHDLoad patch, needs to be size optimised as I only want to use 1 track in normal DOS format. This means I have $1600-512 = $1400 bytes for the code. 14.12.2021 Continued to code the installer, currently it crashes, no idea why at the moment. 15.12.2021 Worked on the keyboard handling for the doc reader, created a version which does not need a level 2 interrupt. Tested it with WHDLoad and got an error message that the level 2 interrupt has not been acknowledged. Will use a level 2 interrupt for the keyboard handling now. 16.12.2021 Added keyboard interrupt for the doc reader, implemented the doc reader in the trainer menu. Adding the keyboard interrupt was no problem at all, used the code I wrote for Slummy a while ago (used for "Irregular Review"). Implementing the doc reader in the trainer menu didn't go that well though. First I had problems assembling the intro source (only worked when I changed manually to the source directory with ASM-Pro's "v" command) Includes/Incbins were not found, had to adapt the source in a few places to fix this rather annoying problem. Then the doc reader didn't work, I forgot that Slummy, contrary to me, does not use a6 as base register for $dff000. I also didn't place the copperlist in chip ram as I thought the whole intro will be in chip anyway. This is only the case when the intro is loaded from disk though. Once I fixed these problems, the doc reader worked but there are problems when scrolling up sometimes. 17.12.2021 Today I did some more fixes for the doc reader, it was not possible to get back to the trainer menu correctly (incorrect display), after some time I managed to restore the original copperlist and screen settings correctly (this only worked when I used Slummy's code to wait for the VBI). Also found the reason for the problems with scrolling up (sometimes the doc reader would exit when the key for scrolling up was pressed), the key code register (d0) was trashed in the blitting routines and sometimes the code for ESC ($45) was returned, which caused the doc reader to exit. 18.12.2021 Coded a RawDIC imager for the save disk. 19.12.2021 Patched the save disk detection. 20.12.2021 Successfully tested the crack intro on NTSC. Started testing the game levels. 22.12.2021 More level tests, problems occured. 23.12.2021 Searched for the reason for the graphics error in level 11 and found it. 24.12.2021 Level 11 currently does not work anymore. Did not do much today as it's Christmas! Decided to delay the release (actual plan was to release the game today) to have time for fixing the last remaining problems. New date for release is 31/12/2021. 25.12.2021 Fixed the problem with level 11, it works again. Tested all "Castle" levels, no problems. Level skip for these levels improved. 26.12.2021 Improved level skip for level 16 (final boss), old approach caused graphics problems sometimes (player sprite was completely trashed) which looked quite bad. I now simply set the energy of the boss to a value which triggers the level end. Works fine so far, the graphics errors did not appear anymore. Found the reason for the graphics trash in level 7, it was caused by the Rob Northen decruncher: the decruncher temporarily trashes 2-4 bytes if source and destination area overlap. The trashed bytes are restored at the end of decrunching. Problem is as follows: file is loaded to address $418b8-16 (=$418a8) and decrunched to $418b8. End address of the packed file: $418b8+86.418 = $56a4a. And at $56a4a the first of 2 copperlis starts. The decruncher trashes the first 2 bytes of the first copperlist, if this copperlist is active during decrunching, the screen display will be corrupted as the copperlist contains invalid instructions! This problem annoyed me since 2015 (when I changed from CrunchMania to ProPack) and I am happy I finally found the reason for this "random" bug! "Thank you" Rob Northen... 28.12.2021 Created the first 4 disk images of the final version and tested it. There was a graphics problem in level 9, otherwise everything looks good. The graphics problem was caused by my fix for level 7, after some time I had fixed it. Then I fixed the minor but annoying graphics bug that was briefly visible after the end sequence. All problems I had discovered were finally fixed now! After that I started to put the WHDLoad installer on disk 4, i.e. DOS files on a NDOS disk. This went quite smoothly, after a short time I had all files for the WHDLoad patch on disk and tested if it still works with the game, this was successful. Then I adjusted the text for the trainer menu and added a "Diary screen" which was no problem at all. 29.12.2021 Today I changed the code for the diary screen, I had used the text writer code from my "Hacker" intro but it was quite time consuming to display the text properly formatted with it. Removed the code completely and instead adapted the doc reader code so that it can also be used for the diary screen. Took longer than expected but worked well in the end. 30.12.2021 This will (hopefully) be the last entry. I will create the final release today and test it. If all goes as planned, the game will be released tomorrow and I can finally remove it from my "should be finished one day" list!