Jump to content
Jet Set Willy & Manic Miner Community

Norman Sword

Contributor
  • Posts

    628
  • Joined

  • Last visited

Everything posted by Norman Sword

  1. 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
  2. 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.
  3. 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
  4. 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)
  5. 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.
  6. 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.
  7. Very similar to Tile Map for the pc. Which plays JSW and JSW2+, plus other spectrum games. The included zip file is for 64bit pc's. TileMap-10-x64.zip
  8. A post (elsewhere) about quirks in the game engine. (Manic Miner) As an illustration of quirks . Here I have modified one room - and added a quirk. Which is displayed in Manic 40 Miner in another room. (it should aslo duplicate on Manic Miner) Here The only interest is the first room, using a quirk that allows the room to be completed. NOTE no other room is different (intentionally) (No editor in this version) and not intended to be a different game version. This is a demonstration of one quirk. m40mquirk2.sna
  9. How I wrote Manic 40 Miner. I used the original sprite data (because the data is not changed) I used the original graphic tile data from Matthew's game (edited and reformated), and I might have added 2 new graphics which are the TOTAL that Ligan's game has that are different (I would need to further investigate that statement). As I keep on stating the graphics in Ligans game are 99% Matthews. If I redraw the room plan, I draw the room using a combination of Matthew's graphics and my own and those two graphics. All those new graphics that you are so adamant about are not used, because they do not exist. So where from my perspective is Ligan contributing to the graphics, if those 2 extra graphics are not used. Code wise I did not grab any data from the Ligan version. I drew the room plans from visual inspection. Hence why the conveyors were wrong. The room/cavern data for the first 20 rooms/caverns (Matthew's) was edited into a new format. Then the Basic room/cavern data (graphics and sprite positions) was duplicated from the first 20 rooms(Matthew's rooms). There being no need to use any other data because it mainly, did not change. The code was a test of a concept. The room plan of the last 20 rooms was based on Ligan's, and I mention this in the scrolling message. The sprites and graphics are duplicated from Matthew's game. In the case of the sprites there is one change in Ligan's version. That change is the sprite graphics for Eugene. That sprite graphic was not copied, and again Matthew's version is used. So your summary of how you think I wrote Manic 40 Miner and the reality is different. No sprite data was needed. No Graphic tile data was needed. I duplicated the original 20 rooms/caverns of sprite paths/keys/portals/designated tiles/colours to create 40 rooms in data. The room/cavern plan was typed in from visual inspection. That means I simply typed out the room/cavern plan like this (an example below). At a later date I added the two differing graphics (Ligans). Any other graphics I had drawn were also added. The next set of differing graphics are taken from the Software Projects version of the game (Matthew's graphics again) defb #3B,#BB,#BB,#BB,#BB,#BB,#BB,#BB,#BB,#BB,#BB,#BB,#BB,#BB,#BB,#B3 defb #30,#00,#00,#00,#00,#00,#60,#00,#00,#00,#00,#00,#00,#00,#00,#03 defb #30,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#03 defb #30,#00,#00,#00,#00,#00,#00,#00,#00,#0C,#DC,#DC,#DC,#D0,#00,#03 defb #30,#00,#00,#AE,#CD,#00,#00,#00,#00,#00,#00,#00,#00,#60,#00,#03 defb #30,#02,#22,#30,#00,#0C,#DC,#DE,#CD,#00,#00,#00,#00,#00,#0C,#13 defb #30,#06,#00,#30,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#03 defb #30,#00,#00,#3E,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#13 defb #30,#00,#00,#30,#00,#00,#22,#22,#00,#00,#02,#22,#20,#00,#00,#03 defb #32,#20,#00,#3E,#00,#00,#00,#00,#00,#00,#00,#00,#60,#00,#E0,#03 defb #38,#88,#00,#36,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#03 defb #30,#00,#22,#30,#00,#00,#10,#00,#00,#A0,#00,#00,#00,#00,#0E,#13 defb #30,#00,#00,#A0,#00,#00,#00,#00,#00,#30,#00,#00,#00,#00,#00,#03 defb #30,#00,#00,#00,#00,#00,#00,#00,#0A,#30,#00,#00,#00,#CD,#00,#03 defb #30,#00,#00,#00,#00,#00,#00,#00,#03,#30,#00,#00,#00,#00,#00,#03 defb #3B,#BB,#BB,#BC,#DE,#CD,#EE,#CD,#E3,#3A,#CD,#CD,#CD,#CD,#CD,#E3 It does not take long to draw the rooms plan in such a way. I typed out the room/cavern plan for all 40 of the caverns. This being necessitated by the differing method of storage from the original. To reiterate. Ligan's change from Matthew's version does NOT change the graphics, the sprites or even change the conveyors. The full extent of sprite change was editing Eugenes sprite graphics (which I do not use). The sprite paths are identical. The room graphics are 99% the original room graphics with the same colours and the same graphics. (with the exception of those tiles) The border colour stays the same, the conveyors stay the same. The portals stay the same. ---- The main difference is the room/cavern plan, and the position of each caverns keys. Now a look at those caverns . The first 10 caverns by Matthew and the first 10 caverns by Ligan. Theses screen shots are from Mainic Miner and Ligan's Version. They are NOT taken from Manic 40 Miner. The next 10 caverns are similar. Left side Matthew's room/cavern and graphics Right side is Ligans room/cavern using Matthew's graphics. (same graphics/graphic colours/sprites/sprite path/sprite colour/border colour/conveyor position/conveyor size/ conveyor direction/portal/portal colour/ portal position) The exceptions are few. Addendum --- I have missed out the VAT (accidentally )
  10. Correction on the scope of editing done in Ligan's caverns. Ligans edit of the original Manic Miner 1) the sprites are not moved or recoloured or changed. The only exception is Eugene Which is a new definition. 2) the graphics for platforms/walls are 99% the original graphics. 3) some rooms/caverns change the graphic definition of the keys/items. 4) the start position in a few rooms/caverns is changed. 5) The graphic colours are not changed 6) The border colour is not changed. There might be exceptions to the above but the exceptions are trivial. Mercinary Kongs thus uses the graphics as provided by Matthew in the corresponding room. There are no Ligan graphics to use or in use.
  11. Scope of editing the switches. In the original format the switches are fixed in position. To move the switch requires not an edit to the room graphics alone, but also an edit to the data for control of the switch. e.g. The game code itself needs editing. This restriction forces all switches for KONG style room to be placed in a fixed order and in a fixed position. Duplicating a room with KONG being a protagonist in the room. Also duplicates the position of KONG- the switches, the platform KONG falls off and the drop KONG does after the 2nd switch is flipped. Plus also the action of the erasure of the central wall and the sprite that passes through the wall. The above is a lot of fixed data and actions. I suppose its possible to write a routine to modify some of the above data to change its action. With a new routine for each and every set of data change. Not a very flexible method of allowing change. The switches. When I added a room editor I permitted the room data and therefore the switches to be edited. This change in itself necessitates re writing the whole of the room setup routine and a redesign of the KONG routine. Moving the switches with an editor means I need to track where the switches are, and unlike having routines that modify the code. I use the position generated by the room when drawn. These positions are stored and the routine for switch activation scans the list of stored switches. I did at one stage expand the switch routine to also expand the scope of what the switches did. For example having 3 switches and needing two switches flipped to activate wall erasure and the third to force KONG dropping. Surprisingly I scrapped the routine, simply because I could not be bothered having to explain the changes in logic that would follow. (That text would have been part of the editor's instructions. I would have needed the full explanation, yet most of the changes could not be edited (so from an editors point of view pointless)) The NEW sprite data The sprite data for KONG now stores its platform position (x,y) its distance of fall, its definition its colour and also the x,y position of the wall erasure. So I can edit most aspects of KONG in the source sprite listing. This means I can greatly change what the KONG routine does, without having to change any of the games code. So it has (for me) become a simple matter to place switches anywhere and have various sprites act on the switches. Seen in Manic Panic in the Final room. Alas the data for Manic 40 Miner uses the basic movement data of the original sprites in most of the rooms/caverns ( twice * 20 caverns) . So since the ability to change the parameters of KONG and the other sprites is NOT included in the editor, the extra features are rarely seen. The only extended version of KONG seen is Mercinary-Kongs on Hire Perches Cavern 23.
  12. Chritsmas part Duex. Screen walk across on my pc is around 14 seconds. If the screen walk across is a slow 62 secs then it might be finishable by Christmas. I was looking for information on specific game modifications when I found these novelties.
  13. The version I listed here has been relisted later on- I will delete this listing - as now not needed.
  14. I am running windows 10 pro (x64) I downloaded the file (the one included above) and extracted to a new folder. The program runs, full window with no protests. Screen shots are via photographs....
  15. Christmas Theme. Just about Miner Willy related. Only tried about 3 rooms. Not shure of the scope of this game. It runs on a PC. JetSetWillyAVeryWillyChristmas2_PC.zip Christmas1 would not run on my machine so is not included.
  16. The image was instantly recognisable, I even thought it was Imagine. The problem was, I only did a quick search for Imagine and not Imagine software. The result of the original quick search was negative. So I assumed it was not Imagine, and stopped looking.
  17. As soon as I saw the picture I recognised it as one iconic old picture. That does not mean I can remember what it was from. If I remember they are grouped in front of a keyboard/monitor looking at a game ??
  18. The original code was written over the period of a week. The original code was using most of the original routines. And was very limited in its changes to the bulk of game routines. As I needed more and more space for the editor, I edited the original routines to shrink their size. Changing music tempo. I had to re read the source code... I added a routine (which I can now just about remember) That set the tempo of the music to the length of the air bar. Played in the final cavern, but can/could be set to any room. It is evident the Manic Panic was written shortly after this. The room data follows the same layout and uses most of the graphics. The room data in this (Manic 40 Miner) is not greatly compressed, it is stored in nibbles. The data in Manic Panic starts off in the same plain format, but as the game is run, it is expanded out and then re compressed. The plain data is then discarded. The expansion and compression are as follows Start of game compression 1) hex nibble expand. 2) run line compress.3) move to buffer 4) repeat "0" compress and move to buffer To draw each room. 1) repeat "0" expand 2) run line expand 3) nibble translate 4) draw room -------------------------------- As stated elsewhere the Editor in Manic 40 Miner does allow easy copying of the data from the original Ligan rooms. Just load up the screens (Ligan's), copy the item/object position into the editor, and read of the data positions, and type into my source code... The above would have been a lot easier than editing the data that I had. Perhaps one day I will update the item/data to replicate the original. (just not this year) ------------------------------- I saw your rzx recording about 10 mins after you posted it. Some of the caverns, do need more items. Just to make visiting some areas, part of the room play. If Ligans original data is inserted, then that would probably be the case... Next year perhaps. ----------------------------- Food for thought.... I should have done a version without the cheat enabled by default. The editor would still be accessable after the cheat is typed in. The cheat code is%^%£^&%£$%$£% or maybe £!$!%("^%£%*(&(£ or is it %^&%£"^&*"^"&^ or perhaps %£$%£$$£$££%£% . Such a long time since writing the code to now, I have forgotten. Those codes are from a note file that is embeded in one file I have remaining. In any case the cheat code is not needed, unless the editor is deleted from memory. ---------------------------- I am glad you enjoyed playing. Next up is Manic 41 Miner, and its sequel Manic 42 Miner. And in the same series the prequel Manic 39 Miner. This could run for several years.😁
  19. Jsw2 has sprites crossing each other. Jsw2 also only collision detects with Willy. Code wise JSW can not replicate the rooms in jsw2. Whereas JSW2 replicates JSW.
  20. Assembles and runs on Brave / Firefox / chrome / edge /opera.
  21. I have deleted every other version up to V6c6. The version chronology was v,v1,v2,v3 etc small updates in code V3,v3a,v3b etc. Updates only in data. V6c,V6c1,V6c2,V6c3 etc.
  22. A more extensive scope/explanation of why I wrote the keyboard scanning program. When emulating the zx spectrum, it can sometimes not respond to certain keyboard key combinations. When I was writing various utilities and even playing games on the zx spectrum. I was constantly aware of key combinations that did not seem to work. The cheat combinations of JSW and Manic Miner are a good example of key combinations that on various emulators and various pc's. Seemed to not respond correctly. The problem varied between my various pc's and changed according to the keyboard used. The problem was big enough for me to investigate what the emulator on my pc was showing as a key press. If I am writing a routine that needs key presses then having an emulated pc that can not respond to those key presses becomes a big problem. For example Manic Panic uses "ASD" "SDF" and "DFG" as groups of keys that have an action that changes the game play. Those key combinations work on my pc. Yet IRF has stated they do not work on his PC. To find out what my PC says is being pressed as a key and passed through its hardware/software to an emulator etc I wrote the keyboard scanner. Running the keyboard scanner, does a constant key scan of every key on the spectrums keyboad and displays which keys are being pressed. This should show clearly any key combination. The spectrums hardware and the emulated spectrums hardware should not have any problems responding to any key pressed. The keys pressed will show up on the simulated spectrum keyboard. When I originally wrote the keyboard scanner, I was suprised to find that certain groups of keys would not respond, when more and more keys were pressed. Most of my keyboards attached to most of my Pc,s had one problem or another. They were fine with one or two keys but failed as the keycount increased. I changed my code to remove key combinations that did not work. As stated earlier the most commen multiple key press combination program I used was JSW and Manic Miner. Both of these programs failed the multi keypress test. Running my keyboard scanner showed the scope of the problem and which key combination did not work. It will be noted that every re-write of JSW and Manic Miner I have done. Does NOT use the multi keypress type cheat that is in the originals, mainly beacuse of the keyboard problem. ----------------------- I mentioned elsewhere (another post) that I had a keyboard that was configured with a reset on the keyboard. To overcome accidently pressing the keyboard reset, I bought a gaming PC keyboard. ----------------------- Every problem I used to experience with scanning multiple key presses on an emulated spectum disappeared. Running my keyboard scanning program showed that the problems of groups of keys, seemingly stopping the response of other keys on my emulated spectrum where gone. I can now press any combination of keys and they will all show up on my keyboard scanning program. ---------------------- Concerning Mr top Hat Running on an emulated machine. The problems described by your inability to press the combinations of keys in an emulated spectrum game. Are more than likely, the problem of your keyboard. Running the keyboard scanner will remove the game from the test loop and focus only on what the emulator is seeing. If the keyboard scanner I wrote allows those combinations of keys to be pressed then the problem is the game. If it does not show those combinations of keys being pressed then it is the keyboard you are using.
  23. Did you try running the simple program I wrote, it will display keyboard scanning problems very clearly? Downloaded the game (Mr Top Hat) and pressed the cheat key combinations. Emulated on fuse. Off to bed - its 4.35am
  24. Its 4am As they say "a picture is worth a thousand words" Just looking at the nice green and black wall, and the nice green and black bush(that is deadly to the touch). MMMMmmmm ... The wall is/was defined as a nasty, which is obvious when looking at it knowing it kills on touch. Very suprised it was not noticed earlier. Wall colour (part of the the part erased) colour changed. Final version - which can be played through all 40 caverns. Instructions and re listed in the first post Manic 40 Miner V6c6.tap
×
×
  • Create New...

Important Information

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