Spider Posted April 7, 2019 Report Share Posted April 7, 2019 This actually applies to JSW as well but in reverse. Let me explain as best as I can: Imagine Manic Miner where you do not have to recollect an item if you should lose a life, upon such life loss the air supply will be restored (otherwise you could end up in a loop) but the items remaining are just that, if there was only one before M.W had an 'accident' that is the only one left to collect to complete the cavern. This does pose a couple of difficulties however, Eugene immediately springs to mind here. ----- In reverse to this let us consider JSW: Lets say M.W had an 'accident' in The Off Licence. Upon restarting the room he would have to re-collect all the items in this room again. Obviously the item counter would of been decremented to match/reflect the real count beforehand. The latter item count might pose a problem in keeping track of it all too. Any thoughts on these slightly random ideas ? The former (Manic Miner) does seem slightly more logical. :unsure: :) Quote Link to comment Share on other sites More sharing options...
IRF Posted April 7, 2019 Report Share Posted April 7, 2019 JSW64 's 'No Kamikaze' feature, applicable on a per-room basis, is a similar concept to your latter suggestion. With regards to the former idea, like you say it could make Eugene's Lair uncompletable, if you collected all items then lost a life before reaching the portal. (The start position in the cavern is too far from the portal if Eugene is angry from the outset!) Spider and jetsetdanny 2 Quote Link to comment Share on other sites More sharing options...
Spider Posted April 7, 2019 Author Report Share Posted April 7, 2019 Yes I think something would have to be done with him to allow that cavern to play properly, possibly just have him 'angry' with colour cycling but not guarding as per 'another game' ;) where this can be seen I looked on Tipshop actually but there's only the one I submitted currently for 'Not interested in guarding' which is three pokes and simply causes him to ignore the fact all objects are collected (no colour cycling) and merely carry on as normal. Quote Link to comment Share on other sites More sharing options...
jetsetdanny Posted April 7, 2019 Report Share Posted April 7, 2019 Yes, I think you could do JSW in two minutes: load a game (e.g. the 2015 Bugfix Edition) into JSWED, convert it to JSW64 and tick the 'No Kamikaze' feature for each room :). This would leave you with a 128K file, of course. IRF and Spider 2 Quote Link to comment Share on other sites More sharing options...
Spider Posted April 8, 2019 Author Report Share Posted April 8, 2019 I've got to confess the differing hack levels for JSWED are a slight source of confusion :unsure: even though most (if not all ?) of their specifics are in the .pdf , same with a 64 vs 128 too. Quote Link to comment Share on other sites More sharing options...
IRF Posted April 8, 2019 Report Share Posted April 8, 2019 (edited) Upon dying, the JSW64 'No Kamikaze' feature also takes the item count* back to where it was before you started collecting items in the 'No Kamikaze' room. So there's no danger of the total number of items collected running past what it should be. (*Both the internal item count variable and the ASCII tally on the status bar.) Edited April 8, 2019 by IRF Spider and jetsetdanny 2 Quote Link to comment Share on other sites More sharing options...
Spider Posted April 9, 2019 Author Report Share Posted April 9, 2019 (edited) Regarding Eugene himself, I see two reasonably easy choices here: Method One: Have him 'angry' but not guarding the Portal. Upon collecting the last item, he will start to colour cycle but not stop at the Portal entrance. To do this just NOP out five bytes, in effect removing three instructions. It may not actually be necessary to remove all three however this does work. S.P. Version: The five bytes in question are located at 36355 to 36360 / #8E03 to #8E08 , both decimal and hexadecimal lists provided: 36355 LD A , (32884) 36358 OR A 36359 JR Z , 36378 #8E03 LD A , (#8074) #8E06 OR A #8E07 JR Z , #8E1A B.B. Version: In a slightly different place as you would expect and can be found at 36344 to 36349 / #8DF8 to #8DFD , again in both decimal and hexadecimal 36344 LD A , (32884) 36347 OR A 36348 JR Z , 36367 #8DF8 LD A , (#8074) #8DFB OR A #8DFC JR Z , #8E0F Method Two: Have him ignore the fact that all the objects have been collected. This means he will simply continue to move up and down as per normal. To do this three small pokes are needed. S.P. Version: NOP out the JR Z , 36378 / #8E1A instruction at 36359 / #8E07 (Two bytes) then change the single byte at 36449 / #8E61 from 32 / #20 to a 24 / #14 , this changes the instruction at 36449 / #8E61 from a JR NZ to a JR Original: 36449 JR NZ , 36458 Changed: 36449 JR 36458 Original: #8E61 JR NZ , #8E6A Changed: #8E61 JR , #8E6A B.B. Version: Again the same thing just in a slightly different place. NOP out the JR Z , 36367 / #8E5F instruction at 36348 / #8E56 (Two bytes) then change the single byte at 36438 / #8DFC from 32 / #20 to a 24 / #14 to effect a change from a JR NZ to a JR: Original: 36438 JR NZ , 36447 Changed: 36438 JR 36447 Original: #8E56 JR NZ , #8E5F Changed: #8E56 JR , #8E5F EDIT... Updated to include both #hex and decimal, and "bolded" most of the relevant numeral values. Edited April 11, 2019 by Spider Quote Link to comment Share on other sites More sharing options...
Norman Sword Posted April 10, 2019 Report Share Posted April 10, 2019 (edited) Modifying Angry EugeneMinimum needed to modify both routines is 2 bytes ------------------ The first one byte modification --------------------------------- The first six byte routine, only needs the last JR Z,XX offset changing to 0 S.P. Version: The six bytes in question are 36355 to 3636036355 LD A , (32884)36358 OR A36359 JR Z , 36378 >>>> Poke 36360,0 ---- This changes the code to JR Z,36361B.B. Version: The six bytes are at 36344 to 3634936344 LD A , (32884)36347 OR A36348 JR Z , 36367 >>>> Poke 36349,0 ---- This changes the code to JR Z,36350 This above just changes how far the relative branch has to jump. ------------- The second one byte modification --------------------------The second modification is as you stated (slightly edited)Change the byte at 36449 from 32 to 24, this changes the instruction at 36449 from JR NZ,XXX (Jump Relative Non Zero,offset)to JR XXX (Jump Relative, offset)Original: 36449 JR NZ , 36458Changed: 36449 JR 36458B.B. Version: Again the same thing just in a slightly different place change the byte at 36438 from 32 to 24 to effect a change from a JR NZ to a JR:Original: 36438 JR NZ , 36447Changed: 36438 JR 36447-------------------------------Total modification 2 bytes Edited April 12, 2019 by Norman Sword Spider and jetsetdanny 2 Quote Link to comment Share on other sites More sharing options...
Spider Posted April 10, 2019 Author Report Share Posted April 10, 2019 Thanks Norman. :) Quote Link to comment Share on other sites More sharing options...
Spider Posted April 11, 2019 Author Report Share Posted April 11, 2019 (edited) I've updated my original post to very slightly re-word it (I say slightly, it could be much improved I know!) and also more importantly to include #hex values of each change too, a 'best of both worlds' so to speak. :) I've also bolded the vast majority of the relevant address numericals too. EDIT... Although it is likely already well known it should be put as a minor ( miner? :D ) note regardless that the 'Re-Release' versions by Mastertronic (M.A.D) and VentaMatic (Spanish release) both use the Software Projects code, albeit with fractional differences but that is something for another topic. Edited April 11, 2019 by Spider Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.