Jump to content
Jet Set Willy & Manic Miner Community

Norman Sword

Contributor
  • Posts

    596
  • Joined

  • Last visited

Everything posted by Norman Sword

  1. Now featuring a guest appearance by Maria. Thankfully the day is nearly upon us..... Then I can forget about this, for a whole year card2.tap
  2. The ADDENDUM ON MY LAST POST If you're in trouble he will save the day. He's brave and he's fearless, come what may. Without him the mission would go astray. He's Willy ,Willy Willeeeeeeee!
  3. No wants as regards Christmas things. The item I would like would be a threadripper PC, but the cost makes that purchase up to me. (and I have no real need for it) The card.TAP I listed annoyed me, so a slight improvement. Which is just an increase in the amount of Willies. It needs me to redraw the pic Addendum: If you're in trouble he will save the day. He's brave and he's fearless, come what may. Without him the mission would go astray. He's Willy ,Willy Willeeeeeeee! card1.tap
  4. Mine was rushed... I was not planning on doing this.. Yours Manic Miner Mine JSW. card.tap
  5. I will publish the cheat code on the 25TH DECMEBER. The cheat code is similar to JSW's cheat code. (in style) it is however a different length and encrypted in a different format. Plus the code is not JSW code but my own.
  6. I am waiting for a film to start. meanwhile a technical blurb post Technical challenges. Here I will list the steps taken just for compressing the room tile graphic data. in JSW I wrote a program that drew each room. From the drawn room the program counted each usage of a graphic. For every tile that was not used, its graphic data is set to all 0's. The tiles colour however needs to be kept as it could easily be a multi defined graphic. e.g. a floor with the same colour as a stair. < this makes a floor act as a stair> Before checking any graphics we start a unique graphic list, with no graphics in it. Next the defined graphics in a cavern/room are checked against all presently defined graphics. If the graphic is found to be unique then the graphic data is stored and the unique list in enlarged by one with this graphic being allocated the new stored graphics number. Otherwise the graphic must be already contained in the list, and its graphic number can be taken from the match. Doing this check, each graphic is allocated a graphic number. This number is where in the list the graphic is defined. By going through the listed definitions for each type of tile we keep adding new graphics to the list or skipping if a match, but we also end up with two numbers for each type of graphic. The first number if the tiles defined colour, and the second is the graphic index number. By going through all 64 rooms the list of unique graphics is dropped from the original 64*7=448 (back/floor/wall/nasty/ramp/conv/item) to around 250 different graphics. A major saving in memory. As stated above, when the data for the each room is stored, it generates a list of descriptors for each of the tiles (back/floor/wall/nasty/ramp/conv/item) And for each tile a pair of bytes is used. The first being the colour of the tile and the second being the graphic index. (to the unique graphics) the data looks something like this the first byte is the colour, the second byte is the index to the definition . db #00,#00 ; colour+BackG db #41,#01 ; colour+Floor db #0E,#25 ; colour+Wall db #46,#00 ; colour+nasty1 db #00,#00 ; colour+ramp db #42,#0E ; colour+conv To further compress the list a colour over ride is defined as -1 (#ff), this is allocated when a pair of data bytes needs a unique colour and a null definition index. This allows the defined data pairs to be trimmed as needed from two bytes down to 1. so the above can be written as db #00,#00 ; colour+BackG db #41,#01 ; colour+Floor db #0E,#25 ; colour+Wall db #46,#00 ; colour+nasty1 ; tile not used but colour is needed db #ff ;--- colour+ramp ; tile not used and no colour needed - generate the colour automatically db #42,#0E ; colour+conv In Manic Miner, it compresses in a similar manner, but this time it has to allocate data for (back/wall/floor/collapse/nasty1/nast2/switch/conv/item) As can be seen the size of the variable list (tiles defined) from Manic Miner is not the same as Jet Set Willy. The extra tiles and differing tile usage, causes a problem with what is defined and where. The game uses specific places to place each of the specific tiles data. To overcome the differences the tile list is expanded to allow for both sets of definitions. The extended list is (back/wall/floor/collapse/nasty1/nasty2/switch/ramp/conv/item) The problem with the expanded tile list is simply it is too big to be stored for every room. So to allow for the differing usages of the tile list a control list is used to indicate which tiles need to be populated and which tiles can be skipped. Probably easier if I list them in this manner (0=back/1=wall/2=floor/3=collapse/4=nasty1/5=nast2/6=switch/7=ramp/8=conv/9=item) so that the control list for JSW is (0=back/1=wall/2=floor/3=________/4=nasty1/5=_____ /6=______/7=ramp/8=conv/9=item) and for Manic Miner is (0=back/1=wall/2=floor/3=collapse/4=nasty1/5=nast2/6=switch/7=____/8=conv/9=item) The next problem is the multi code usage. Each tile needs to have a unique value, so unused tiles, can not match with the defined values in the version played. So colour descriptors are generated as expansion takes place, these values are placed over the unused data. the values all being different to stop colour matches with the tiles defined. so whilst playing JSW it checks for both types of NASTY even though in the original version there is only 1 nasty. It also checks to see if Willy is walking on a collapsing floor, even when none are defined for JSW. The reason it checks and does not have code to bypass the unneeded checks, is simply because adding those extra checks, is just as slow as doing the unneeded tile checks. And the version v 1.04 Obsolete version v 104 deleted - downloaded 7 times
  7. I did update some of the graphics and displays. With no change in the gameplay as such. The update was held back and would/will not be published if a playthrough had appeared or is pending. The up dates are trivial screen and logic changes. Added a Norman Sword onto the title page. . The playing screen now removes all the air bar when all the air is depleted in Manic Miner The playing screen displays the music speed slightly different. I was not happy with the old display. The playing speeds are also shifted towards the faster game speeds. Cheat mode - yes there is one. Will only play JSW screens. Can not be used in MM screens. Will not allow access to the undefined rooms. Is deactivated on game completion. (e.g. the auto play modes) Displays a screen activated marker. Runs and plays in 48k not in 48Megabytes.
  8. Thanks for playtesting the game through to this point. I play through dozens of caverns/rooms for each change I make. After a bit I loose interest. I write logic code, the playing part is nowhere near as ineteresting to do, as the code is to write. Getting very close to not doing any more on this game (namely- Manic Miner / Jet set Will/ Manic Panic /Manic Jet set willy and all the other versions I have written). The time it takes is excessive, and I can not see any challenge that I am prepared to do or want to do at this moment. The modern trend is just get a faster processor, and a bigger amount of memory. To write a note for the milkman, instead of it being a few bytes printed out, is now a few megabytes of data, printed in a fancy script and then printed out. It still says "NO MILK TODAY"
  9. Amoebatrons' revenge: The data for the conveyor in the original Manic Miner. As defined in the Skoolkit disassembly. (BELOW) The next four bytes are copied to 806F and specify the direction, location and length of the (unused) conveyor. #F66F DEFB #01 Direction (right) #F670 DEFW #7827 Location in the screen buffer at 7000: (9,7) #F672 DEFB #03 Length My extraction code picked up the data and generated the necessary compacted data. Which due to code change was created as an active conveyor. The created data has now been deleted to remove the conveyor. -------------------------------- currency changed to British Pound -------------------------------- I have updated the animation in the game completed screen. Something that has not been seen so far. -------------------------------- - the sprite of the white horizontal guardian in "The Bank". The limit of the bouncing check is the vertical sprites either side. No change. - the range of the movement of the guardian at the ground level of "Attack of the Mutant Telephones" (much shorter than in the original); changed: was 15 to 19, should have been 5 to 19 also slowed down the middle green horizontal sprite Duplicating the original sprite movement is more along the lines of ensuring it is completable. In the Manic Miner part, I can/could use any combination of sprites in any cavern. Even take the available JSW sprites. Similarly I could use the Manic Miner sprites in the JSW part of the game if I wanted to. ----------------------- I will watch the run through - Might increase the bonus for Kong's demise. I have increased the bonus for dropping Kong from his perch ---------------------- Changed the portal flash. This involves simply putting it back to the original routine I wrote. It was shortened to make the delay between rooms shorter. ---------------------- I would suggest considering fixing "Conservatory Roof" so that all items there can be collected without loss of life. It would be nice to be able to complete the game without losing a single life. I will see how difficult that is... All the data is compressed, would need to go back as far as the original data and change that, then assemble. Copy move directories - run another program, load my extraction code, run that, extract the data, go through the data and extract the compacted data for that room. Mmmmm.. After a few rounds of doing the above sequence, then playing the game through to the conservatory and not seeing what I wanted. I realised I needed to also change the original objects data as well. Moving the nasties and leaving the objects from the original data on top of the moved nasties. Caused the extraction routine to delete the unseen nasties. The object placement and the nasties are now different. ------------------------------ The speed. The music routine (in game music) plays the notes for a longer time than the original, which already slows the game down. I will see how much memory is available at present to add yet more code. Change is keyboard key usage and options. The keyboard group <HJKL> and <enter> used to toggle music on and off. This has been changed to using just the keyboard <enter> key. The keyboard keys <H> and <J> now have a different purpose. Change in how the music is played. To facilitate changing the speed, the music routine can not be turned off. What the music on/off via just the <enter> key does. Is to enable or disable the toggling of the speaker diaphragm. When the toggling is enabled the speaker diaphragm moves back and forth and you hear sound. When the toggling is disabled the speaker diaphragm is left in one state, and no sound is produced. This means the game is played at a steady state. There being no change in speed between music on and music off. The dancing Willies will indicate as usual the status of the music routine. As mentioned above the music is toggled on/off solely by the <enter> key. The reason is that the keyboard keys <H> and <J> will alter the length of the music notes, and by extension to doing that, alter the speed of the game. The keyboard key <H> will move the visual indicator bar left. Making the notes shorter and visual bar shorter. The keyboard key <J> will move the visual indicator bar right. Making the notes longer and the visual bar longer. If music is playing it should be obvious what is happening to the length of the music notes. As the notes get longer and longer the game will get slower and slower. Conversely as the notes get shorter and shorter the game will speed up. It will go from long notes to short note clicks. The screen will show a music speed bar above the time, the longer the bar, the longer the notes being played. ----------------------------- caterpillar logic and movement. Unlike all the sprites in JSW and Manic Miner the movement of the caterpillar is not linear. It moves in a sinusoidal path. I did at one stage expand the logic to do very slow sinusoidal movement, and concluded ---- No one will actually notice, so reduced the data. ;----------------------------- Down to just a couple of bytes of free memory. ---------------------------- Obsolete version v1.03 deleted - Downloaded 9 times
  10. A mad couple of hours, changing the sequence of a lot of data, and adding more routines. The code I wrote was just added without much stream lining, so I hope it works. The visible changes and keyboard key change. The option of playing Manic Miner has been moved from the keyboard "M" key to the keyboard group "HJKL" - the reason for the key change was to stop the initial jump on entering the Central Cavern, when playing the shorter version. There is a change in animation at the completion of JSW, and also a bonus is also given on completion of JSW part of the game. The pause sequence now will display the current Highest score. Going back to the game will delete the highest score from the screen. The reason it is deleted, is because it over complicates the screen visuals. If you MUST see the highest score, then press one of the pause keys. The boot sequence will also display the highest score. The changes in the start position for Manic Miner - should make it more like the original Manic Miner. However I did re-write the Solar beam/eugene/skylabs and the Kong routines, so they could be slightly different. There might also be a difference in the JSW sprite routines and the equivalent Manic Miner sprite routines for movement. The game now has only JSW style movement routines. The Solar beam on contact will zap air and also takes money from your cash. The rewards for the full game completion are in the $MILLIONS. This version v1.02 was down loaded 9 times deleted as obsolete
  11. The data in the Manic Miner disassemblies (skoolkit) doesn't layout the data in an easy to extract way. Remember I was extracting the data, changing it into a format that JSW could use. So yesterday I re assessed the data by going through the disassembled source code to extract more information. The part I looked at, concerned the start state of sprites in the Manic Miner data. That has allowed me to re-format the data I had and add more information. That information has now been incorperated into MJSW's sorce code's file, and updates the paths of the sprites in the Manic Miner part of the game. No idea if that is wanted or not. If the update is wanted, then I can also add a slight change in the game ending. Might also change the key that allows the MM screens to be played. That is change the "M" to a key in the group "HJKL" - the reason being - it will stop the initial jump. Since I have recompacted some data, I now have extra memory to extend the "game over" or add graphics......
  12. Manic Jet Set Willy. Here the reality of owning his huge mansion has started to eat into Willies ready cash. Maria has asked for a rise and refuses to do extra work after one of the biggest parties that willy has had. So Willy is tasked (again) with clearing up the mess. It looks exactly like it did after another party he gave. Bottles and items left in exactly the same place. Even the items that had to be located by others, because they seemed to be invisible are back again. The clear up needs to be done again, with the overheads of his mansion slowly eating into his ready cash. As luck has it finding an item brings its own reward. When the tidy up has been completed and Willy has made his usual bee line to the toilet, the world begins to spin.... Flashing giant caterpillars... Back in the world that made him all his monies. He now has the opportunity to build up his cash so he can retire, and give Maria a rise. Meanwhile the mansion he owns is still draining his monies, but at least the rewards for picking up items are now greatly increased. Even knocking Kong off his perch is worth the effort. The biggest danger is having any kind of accident. Willy is getting on, and the cost of hospitalisation is not as cheap as it used to be. You need to keep the ready cash above zero. A failure will end the game... Don't forget to take your bucket and spade, and visit the beach, for the sand which is there. ------------------------------------------------------ This was written to show it could be done. I can not see many people managing to complete this version. Change of version to v 1.01 - The change is so that you can play either half of MJSW Press enter to play MJSW. (80 rooms/caverns) Press"M" while the title music is playing and it will allow the Manic Miner rooms to be played (20 caverns). Because of the shortcut (cutting out the 60 JSW rooms) the game is not completed when the 20 Manic Miner caverns are finished. To finish you need to play the FULL 80 rooms/caverns. This version v1-01 was downloaded seven times. A more current version is listed in a later post.
  13. Completed - but I will wait till Decmber 1st 2021 to release version 1. The game has all the rooms of jsw and all the graphics and sprites of jsw. The game has all the rooms and all the graphics and room sprites of Manic Miner, plus the usual kong/lightbeam skylabs and portal graphics. Even includes the final Barrier Graphics The are around 166 items to collect, and around 190 guardians paths defined. Runs very fast so the music is extended in note length to slow it down slightly. -Some thing had to go , So this will not include the piano graphics and Manic Miner tune, or the full manic miner title screen.
  14. Soon I will show the combined game of Jet set Willy and Manic Miner running in the same 48k. This was not an easy challange, the games are different enough to cause problems with data compaction. The various paths I took mostly ended with a versions that crashed. One path which looked promising had unknown to me a major flaw, which when it was discovered. Needed me to backtrack two complete versions to remove the flaw. So interesting to write - but a lot more effort than I wanted to undertake. Whilst I have the game running and can play jsw or Manic Miner It is the program flow that I am changing. So it will play both, but slightly different, I plan on changing the overall design and purpose. (not a great deal) The program has to pass my own criteria of completed, so it could be days or weeks. So watch this space...
  15. My take on the saga. Chronology for Manic Miner The game was written for Bug Byte - Bug Byte was licenced to reproduce game and produce Bug Byte specific Manic Miner art work Game Modified before Matthews 18th Birthday. To include Software Projects graphics Matthew on reaching age 18, becomes a Director Of Software Projects. Licences Software projects to reproduce game and produce Software Projects specific artwork for Manic Miner. Alan Maton becomes very concerned about software piracy after watching JSW being copied before release. JSW has the copycard code inserted. ----------------------------------- Since the game Manic Miner is not updated to include the copycard and its code. It is not (codewise) revised whilst Matthew is a director of Software projects, and therfore NEVER becomes a game written or part written by Matthew as a director. This Implies that 100% ownership of the game is/was still accredited to Matthew Smith., and was never a part of software projects assets. Continuing - this also implies that Tommy Barton could NOT have bought the asset to clear debts from Software Projects, because it was not owned or part owned by software projects. Thankfully because the copycard code was never inserted into the game.
  16. Tape loading on the cpc 464 for JSW When a block of data is read from a tape the header block sends a sync byte designating the header and the data sends a different sync byte to designate the data. The header has a sync byte of #2c and the data has a sync byte of #16 For JSW the sync byte is used to describe the position of the data. So all blocks of data have a differrent sync byte. This allows for bad data blocks to be reloaded, (with a message) and not have to resort to loading the whole tape again. If I remember correctly the data is also loaded in block by block in reverse order, starting at high memory and loading each block at a lower memory address from the previous block.
  17. There is an update. Needed to circumvent another piece of the original data. All rooms are numbered 0 to 63. Due to the way the original code uses or #c0 the top two bits are set to arrive at the room base address. My code does a simple calculation and indexes into an address list. Every room has data that follows the same format of being under 63 for the up/down/left/right exit. That is until we arrive at the corrupted data in the normally unreachable rooms. Matthews code does not care what data it is given it will always arrive at a room number that is effectively from #c000 to #ff00 stepping one page at a time for all 64 rooms. My code however will calculate the room number as defined and unfortunately due to the corrupt rooms will calculate the position of junk room data. A bit like the arrow problem. Once an illegal room has been visited, the game goes eh up sgshd egfgf noxt roosm. etc. The update to fix the room problem also added updates to stop speed flicker/judder by inserting an optional frame sync. Which might be unobtainable on some keyboards. Due to the inability to properly scan multiple key combinations. --- Can/could switch the option, to <on> by defalut. At present it is <off> by default. Or I can change the key combinations or reduce the key combinations to only 2. --- At present set as <A> <S> <D>, which will also invoke pause. The screen will indicate that those keys are being pressed.(during game play) The status indicator for the sync being active or inactive is the colour of the letter <I> from the line <Items Collected ... The colour is normaly the same as the end of the same line (blue) . When frame sync is active the colour will change from blue to Magenta. A side effect of frame sync is a reduction in speed. So typically the speed goes from slowest (music + frame sync) 14.4 medium (music) 13.28 fast (no music+ frame sync) 12.7 fastest(no music+ no frame sync) 11.08. The timing is my standard double room walk. The change in speed is the effect of rounding up frame times, when sync is applied. In some rooms it will seem to have little effect in others it will drop the game speed noticeably. No graphic change to the program. Although the method of storing the room data has been changed. ------------------------------------ I spent a day writing a visual display of how I plan on compacting the data further. This program has the output files that it creates deleted. All 3 files need to be in the same directory. The two data files are the data files generated by 1) the key data 2) all 64 rooms .eg.g JSW from #c000 to #ffff. This show the data being compacted by over 50% - Not quite good enough for what I want. This has been posted before I have had the chance to append any files. The files will be appended one by one The picture shows the output of the program. (all values in hex) 1) the numeric value of each tile 2) the graphic output 3) Item positions (in pairs) the first value is the offset from the start of the room, the second value is where the data is in the key table above 3) is the count of each tile (in present room) data at the end of the line is the new compressed tile index and the graphic colour 4) present sprite data 5) each tiles index as generated by checking previous room data 6) the list of acquired data - in colour if being a tile drawn in current room 7) vertical compression/ horizontal compression/ stored count/original Lots of other data concerning compaction of room names etc. MW-V1-1a.tap n_rooms2.zip
  18. Concerning the version for Minors I'm glad it was not just me that found the level of difficulty too hard. Unfortunately the amount of editing from the original is very little. This is basically a graphic edit, with the rooms partially redrawn and some sprites removed. The sprites that are edited (movement path) are not edited a great deal. The problem is this needs a routine similar to the routine I added to Manic Panic, where the instant death routine is turned off, and the air bar is depleted. Until that simple modification is incorporated this will always be difficult. Having watched people play Manic Panic (adults) it is evident that the death on contact for the casual player is a great turn off. For example in modern games I play some of the combat games, where you play trying to take out terrorists etc. I play mainly to gawp at the graphics and push my graphic card as much as possible. I normally last but a few seconds before a sniper takes me out... This tends to make me turn the game off after a few deaths. Manic Miner and JSW exhibit similar characteristics for those that are not accustomed to the game. Play a few times and switch off when the game never lets you progress far. Adding a air bar depletion on contact makes the game as easy as needed. If the game is then found to be too easy with the air bar depletion on contact, then the Minor is old enough to play the full game.
  19. I have added a graphic change for the final toilet run. I added a blank item check into the code, and left it. A blank item will be filled with junk graphics. This makes blank items visible (in case a blank item crops up!) Changed the title picture. That can now be aborted with "HJKL<enter>" or held on screen with "YUIOP" Changed the screen display pause in attract mode . Held with "YUIOP" abort with "HJKL<enter>" Items flash and item draw have been changed. ----------------------------------------- MW-V1-1.tap
  20. The speed of attract mode: The original version was animated. that was changed to static and scrolling across. Each screen can be paused by pressing any key from the keys "Y","U","I","O","P" and holding it down. The sequence of screens will keep on changing order (but will repeat on every reload of the game)
  21. Unexpected features - or more correctly - features due to bad typing. On the mega compression of the rope, There was/is a conditional branch that sets the rope draw direction. That condition was wrong. The direction of conveyors and ramps. For every room I retyped a macro, which was supposed to be using a duplicate of the original data. but written differently and compressed. Incorrect retyping of the 64 room data. If the data was only one room it would not be so bad, but every change I do ends up being typed out for 64 possible data versions. I actually spent a couple of hours fixing a bug that was due to the code I was working with, still contained the Attic bug. So I rediscovered the effects of that bug. < the demo of all the rooms kept crashing> just rememberd also that the rope overflow problem was also probably causing a problem with the ropes. Water cells in Esmerelda - those macros again. Not yet looked at the problem for keys/items. ================================ I start out with mainly one aim, and nearly always get side tracked onto another path. I aim one day to fit in 48k a full blown version of Manic Miner and Jet Set Willy. So the assumption Manic Miner is hiding somewhere is not a bad guesse . (just not in this version) (not yet) =============================== What has changed from the standard JSW. 1) memeory for copy screens sits in high memory - faster 2) screen copy is a raster copy not a simple ldir 3) the rooms are reformatted - no longer 256 bytes - smaller 4) rooms are compressed - by macro's and also by code 5)key data is stripped of unwanted data and also sorted with a simple bubble sort. The sort is needed to implement the removal of unwanted key checking. Each room checks only the keys in it's room, and no other. 6)nasties are removed from being jumped on (Manic Panic style) this is needed due to invincibilty and being able to jump on nasties otherwise. Can cause some rooms to have no floor (just a consequence) 7)added invincibility after death 7+1) super compressed the rope - (an eight is replaced with a face - so 7+1) 9)deleted all unused data in the sprite list. Each sprite is seven bytes and not eight. (it is expanded to eight) 10)removed unused sprites 11)deleted most of the un needed duplicates of data that causes flicker on room entry. e.g. duplicate text 12)time and objects are only updated when needed. 13)dancing willies only update when a change in animation. 14)item collection updates the number of items collected (the text) not every loop 15)background updates are done as a duplicate of the draw updates. e.g. to restore the screen to a clean state, sprites copy the background 16) sprite routine has been split into draw and merge (2 seperate routines) etc It became evident that the compression of data was not savage enough, which meant this code was a dead end. So I added the demo screen part, then added a title screen and left it as that. To do what I want (mm and jsw combined) means I need to start from scratch and ditch most of the original data and how it is laid out. Which was NOT what happened here. All those crashed hard drives SSD's etc have deleted most of my other source code and utilities- so anything I try out, is basically starting from scratch. I will look at the key data - probably tomorrow, sometime. I am also in the process of redrawing the title screen - I am not happy with the first version. Addendum - just before I go to bed... The statment that I had to fix the attic bug, then looking at the screens around the end of the rzx recording..... The missing key is in the first Landing - I am using the original data. Duhh.
  22. When Willy returned to the house, it did not feel the same. Those long years being lathargic had dulled his senses. Revisiting his past (Manic Panic) has installed a new vigor in his life. His activities have pushed has lathargic past into the past. Now he has no need for a zimmer frame, and no need for glasses. Willy has a new purpose in life. The file that was here has been deleted. The reason is because an extended version is listed eleswhere under the heading Manic Jet Set Willy.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.