Jump to content

Tezz

Members
  • Posts

    2,515
  • Joined

  • Last visited

  • Days Won

    4

Everything posted by Tezz

  1. Hi all, In celebration of the 35th anniversary of Jet Set Willy this year, I've written a new definitive conversion of the game for the A8 from scratch featuring hi-res colour, 50/60Hz sprite/screen updates, bug fixes, the Rob Hubbard music and an accurate conversion of the sound effects. Back in February after taking a hiatus from A8 programming for a year, I was reading an issue of Retro Gamer magazine where they'd mentioned that Matthew Smith would be attending Play Expo here in Manchester in May. Inspired by the opportunity to meet Matthew in person I started to look into the technicalities of rewriting everything and developing a full colour recreation of the game as I did previously with Manic Miner. I didn't have any prior intention of creating a new conversion of JSW with other projects awaiting continuation but as I looked into it I thought why not surpass my previous effort with MM and so before long I'd started working on the game fully. I thought rewriting all of the procedures for the char based method would be a fun challenge and I certainly thoroughly enjoyed working on it over the months, particularily the realtime drawn rope. I spent considerable time planning and working on the implementation of the colouring for each room to ensure that the interupts and mid scan changes (where nessasary) were as optimal and minimal as possible. Whilst carefully designing all the room implementations with various trials and itterations I concluded that there were several that benefited from non-inverted colour ordering so I adapted all of my procedures to deal with both inverted and non-inverted rooms to achive the goal. I gave extra consideration to the "Entrance to Hades" death room. The colouring of the original game dictated that the large guardian sprite was dark but of course Miner Willy is always White in the game so this was another room that I decided I was able to work around things with non-inverted colour ordering and writing a special procedure specifically to calculate a sprite overlay for Miner Willy. With the design of the room I made it possible to free the missiles to utilise color3 with the 5th player for that purpose. You'll rarely ever see this room but in persuit of ensuring I did everything as best as possible I continued to make sure that all aspects of this classic were well represented in the final game. I've included the Rob Hubbard music from the A8's commercial release and the sound effects have been recreated to be accurate to the original Spectrum game. Developing the missing sound effects with Manic Miner was something I intended to come back to so that MM would be complete so I made sure to solve them whilst working on JSW. The original Spectrum beeper effects use short CPU hogging loops during runtime which resume again after a continuing pass of the game code to give that famous stuttered effect. With my version of the game being developed for single frame 50/60Hz, that wasn't an option so after contemplated a solution I considered making use of a POKEY timer to precisely cut the volume after a specified duration to accurately replicate the same effect. After discussions with both Avery and Lyren (many thanks to them) including integrating the keyboard IRQ into the procedure I had a working solution to implement. When I was initially mulling things over I wasn't sure whether it would be possible within the XLs stock 64Kb RAM as JSW is 3 times the size of MM with 60 rooms and with more developed procedures. JSW is also a free roaming game so I'd need to have additional buffers for the switch between the rooms. With the carefully written optimised interrupts, the RAM used for the 60 JSW rooms were within target and with everything else written there's unused RAM remaining from our usable 62kb even with the inclusion of the music. Many fixes have been implemented (or rather acknowledged and corrected) so the game is now presented more closely to how Matthew had originally intended. Firstly the official fixes released by Software Projects: There were four critical bugs with the released game which prevented completion. These were eventually addressed by Software Projects and these fixes have all been taken care of with this new A8 version. The most famous bug of all in JSW was the Attic bug, this was caused by an incorrect y-coordinate of an arrow definition, one of the bytes is an index into a table of screen buffer addresses and should always be an even number, but the value of the byte was 213 making the arrow procedure overwrite and corrupt several rooms making them impossible to navigate. The official fix corrected the arrow y-coordinate. One item on the far right in "Conservatory Roof" was also uncollectable as a nasty was blocking it, the official fix removed the nasty. In The Banyan Tree it was impossible to access the room above (A bit of tree) from the right-hand side which is nessasary as you need to access "Conservatory Roof" to collect the items via the ledge on the lower left in Under the Roof. the official fix replaced a wall tile with a floor allowing you to pass. There was an invisible item in "First Landing" which was also unreachable. As you need to collect all the items this meant that the game could never be completed. The official fix moved the item to The Hall where it still remained invisible. I've taken the liberty of giving the item there a definition of a shield for the A8. Other less obvious bugs: The conveyors in "West of Kitchen", "The Nightmare Room", "The Wine Cellar" and, "Tool Shed" were all actually corrupted. This was caused by a bug in the room rendering code. If a graphic data byte for one of the room tiles matched the attribute byte of the conveyor tile to be drawn, the Z80 CPIR instruction exits early leaving HL pointing at the wrong address and therefore rendering a corrupted conveyor. Additionally with "The Nightmare Room" the attribute byte for the conveyor was shifted by one byte back making it appear flashing green/cyan rather than the correct red definition. The conveyors are now presented in all of those rooms as originally intended by Matthew. Furthermore in "The Nightmare Room" with the byte shifted back it fixes the definition of the ramp which previously had a gap at the bottom. The same bug in the code causing the CPIR instruction to exit early also caused the nasties down the right hand side of "A bit of tree" to be corrupted. I decided to leave that one alone as it doesn't affect the game and I'd rather it stay the same not to make unessasary changes and keep the game as it's remembered. The item in the Swimming Pool was automatically collected as soon as Willy entered the room. This bug does not occur in the new A8 release. Contradictary to the scrolling title screen message that Willy must collect all the items before midnight, The original game ended abruptly at 1am regardless. This has been fixed in the new A8 release. Using the Spectrum map created by Pavros in 2012, I've created my own map with screenshots of all of the 60 rooms which is attached below. Key presses during gameplay: H - Toggle between music and sound effects (Your last status will also be remembered when starting a new game) A - Pause Attached is my initial v1.0 release which is PAL only for the moment, I'll get around to the nessasary ammendments for NTSC machines. You should be able to load from any device, I've attached an ATR with the executable autobooting on a DOS2.5 image. I hope you enjoy playing through the game. Tezz Edit: 17th November 2019: the original attachments have now been replaced with the final PAL, NTSC and hybrid compliant release. jsw2019.xex jsw2019.atr
  2. Memories of Lucas Arts with David Fox - Retro Tea Break
  3. We have the ability to make use of a POKEY timer and drop non-maskable interrupts all together.
  4. It's always great to get the chance to chat with people at these events. I've had the opportunity to meet so many people over the years. It's a shame that certain people in the industry treated Matthew so badly back then. I used to attend the old PCW shows in Earls Court in the late eighties up until 1990, we might well have crossed paths at some point in the past Paul.
  5. I actually got to meet Matthew Smith in person yesterday at the expo. It was a great day overall. I chatted for a few minutes with Matthew at the end of his Jet Set Willy talk about bringing Manic Miner to the Atari which was the platform that inspired the creation of the game originally and he talked about his appreciation of Bill Hogues work mentioning that he'd disassembled Miner 2049er back in the day. I also met and spoke to one of the developers of the Sam Coupe release of Manic Miner. During the rest of the expo I spoke at length with David Pleasence the former Managing director of Commodore UK including his meeting with Jack Tramiel. It was a real eye opener about what was happening behind the scenes. I bought his book on the inside story of Commodore.
  6. Sorry I totally missed your comment in February. I had a break from things for a few months at the time. I should get back to sorting that out at some point. I've started getting back into the various projects again the past couple of months.
  7. Welcome to AA Play Expo is happening next weekend if you're able to travel up North.
  8. The first Atari I was able to buy was the 800XL in '84, I bought a 130XE in '89 from Silica to have a 128K machine plus I quite liked the updated ST/XE styling despite their reduced build quality. As much as I liked the XLs by the end of the 80's I thought the styling of the XL range with it's brown and off white was starting to look a little too 70's. When I got back into things again in the early 2000's I bought a 65XE and modified it with a 32-in-one OS, 320Kb and VBXE which was my daily machine for several years using SIO2PC until I packed it away during construction work at home. Afterwards I didn't have the same desk space to spare so last year I decided to revert back to the XLs and build a modified 600XL with Ultimate 1Mb, VBXE2/DIN13, Simple Stereo POKEY/Uswitch which was undertaken by Jon. Now that the 600XL can be upgraded to such a degree it's definately one of the coolest Atari's to own. I've got the XL quality back and I love it's diminutive size.
  9. Great minds think alike, I also found this project and built one of them a couple of months ago This is something I've wanted to do for a long time. I intended to add an additional +- power supply to also enable testing 4116 RAM with -5 @ pin 1 and +12 @ pin 8 but I had a short somewhere after building the power supply kit and need to look into it. I did the usual careful visual inspection of my soldering work before powering it on the and all looked good, the XL6008E1 DC/DC Converter was very hot to the touch and none of the output voltages were correct with the exception of the +5v which was showing 4.97.
  10. Sure, no problem I agree, also the Datasoft logo is more prominent in the dark blue colour.
  11. RLE procedure.. rle_depacker sta inputPointer+1 loop jsr getByte beq stop lsr @ tay lp0 jsr getByte lp1 sta $ffff outputPointer equ *-2 inw outputPointer dey _bpl bmi loop bcs lp0 bcc lp1 getByte inx sne inc inputPointer+1 lda $ff00,x inputPointer equ *-2 stop rts set your destination address @ outputPointer load acc with high addresses of your rle packed data -1 load xreg with low addresses of your rle packed data -1 call rle_depacker
  12. I remembered this came up before... http://atariage.com/forums/topic/244785-back-to-the-future-written-on-an-xe/
  13. I'm hoping to find a missing remake of Forbidden Forest within my disk archives, it was written by someone we knew in the mid to late 80's, he worked at Ocean Software for a while amongst several other software houses previously and then eventually moved to the states working for Electronic Arts. I last bumped into him in the early 90's where he said he'd retrieved all the Atari equipment from Ocean when it closed and asked to borrow all of my disks as he'd sold his original setup, I gave him all the disk boxes for him to copy but I never checked whether I got all of them back when they were returned. Aztec Challenge was one of the first games I ever fully disassembled I should still have that somewhere.
  14. To fit recessed like the original badge, the backing plastic needs to be sanded wafer thin. I did this by laying out some 400 grit on a flat surface and I placed blu tack along the top of the badge to give me something to grip to. I sanded slowly and without much pressure making sure to hold three fingers along the full length of the badge evenly to avoid the badge snagging and subsequently kinking. Luckily the backing plastic is soft and sands down quite quickly.
  15. I've added the same info to the pinned restoration thread. I forgot to include that last year.
  16. Thanks to __The Doctor__ for the correction... The cartridge flaps, console key tops and case trims on the XLs are iridite treated brushed aluminum. Where the surface of the console key tops have become worn away with use in previous years as mentioned earlier in this thread I've polished them back to shiny Aluminium with metal polish. Last year I bought a 600XL which wasn't in the best shape, the console keys tops were scratched, worn and affected by bad storage as was the case trim. This time I set up a small wooden jig and sanded the console keys down with low grit wet n' dry paper working up to a higher 1500 grit until all of the marks were removed, I then gave them an anodized look with a re-anodizing spray paint. I masked and carefully sanded the case trim without removing them and gave them the same paint treatment. Everything turned out quite nice in the end. If I had other things to paint I would have given them a 2k clear coat as well but they look nice as they are and will probably wear at least as well as the original surface.
  17. The cartridge flaps and console key tops are iridite treated brushed aluminum. Where the surface of the console key tops have become worn away with use in previous years I have polished them back to the shiny Aluminium with metal polish as Jowi mentioned above. Last year I bought a 600XL which wasn't in the best shape, the console keys tops were scratched, worn and affected by bad storage. This time I set up a small wooden jig and sanded them down with low grit wet n' dry paper working up to a higher 1500 grit until all of the marks were removed, I then gave them an anodized look with a re-anodizing spray paint. They turned out quite nice in the end. If I had other things to paint I would have given them a 2k clear coat as well but they look nice as they are and will probably wear at least as well as the original surface. Here's a before and after of the keys..
  18. Yes, those replacement case badges are way too thick with their plastic backing. I carefully sanded mine down last summer (800XL and 600XL) and used 3M 467 tape to attach them permanently. Here's a before and after photo..
  19. Crownland https://www.youtube.com/watch?v=JCsDcQBFRPs
  20. Hi Peter, sorry, it was actually the graphics mode pull down menu that was not functioning within "select sprites", the scroll bars were still functioning the same as the old version. It will be another welcome fix for the scroll bar dragging however
  21. Hi Peter, I used your latest update this week, it's great to see the improvements. DIS6502 is something I use often so it's much appreciated. The only thing I've noticed so far during disassembly is that the "select sprites" was ghosted in the menu, I could still press F4 to access it but the scroll bars for the start address and sprite width were not responsive.
  22. ok, I found it in one of my online backups. Quick fix is attached. It should be rewritten properly however and have the sprites procedures added at some point. silkworm_test1b.xex
  23. The DLI (and the rest) was crudely written at the time. I should have the files somewhere in the archive to go back and fix it. I remember including the joystick cotrolled heli sprite in a later demo which was a softsprite with PMG overlay. The final intended example was to include some enemy sprite patterns.
×
×
  • Create New...