Jump to content


Photo

Restart without recollection


  • Please log in to reply
11 replies to this topic

#1 Spider

Spider

    DEC (HL)

  • Administrator
  • 3,852 posts

Posted 07 April 2019 - 01:50 PM

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: :)


Changing order to chaos since 1984

#2 IRF

IRF

    Advanced Member

  • Contributor
  • 4,150 posts

Posted 07 April 2019 - 03:15 PM

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!)

#3 Spider

Spider

    DEC (HL)

  • Administrator
  • 3,852 posts

Posted 07 April 2019 - 04:06 PM

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.


Changing order to chaos since 1984

#4 jetsetdanny

jetsetdanny

    Advanced Member

  • Contributor
  • 2,066 posts

Posted 07 April 2019 - 05:56 PM

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.



#5 Spider

Spider

    DEC (HL)

  • Administrator
  • 3,852 posts

Posted 08 April 2019 - 07:26 AM

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.


Changing order to chaos since 1984

#6 IRF

IRF

    Advanced Member

  • Contributor
  • 4,150 posts

Posted 08 April 2019 - 04:04 PM

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 by IRF, 08 April 2019 - 04:04 PM.


#7 Spider

Spider

    DEC (HL)

  • Administrator
  • 3,852 posts

Posted 09 April 2019 - 07:31 AM

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 by Spider, 11 April 2019 - 03:10 PM.

Changing order to chaos since 1984

#8 Norman Sword

Norman Sword

    Advanced Member

  • Member
  • PipPipPip
  • 193 posts

Posted 10 April 2019 - 02:00 PM

Modifying Angry Eugene

Minimum 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 36360

36355 LD A , (32884)
36358 OR A
36359 JR Z , 36378 >>>> Poke 36360,0  ---- This changes the code to JR Z,36361

B.B. Version: The six bytes are at 36344 to 36349

36344 LD A , (32884)
36347 OR A
36348 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 , 36458
Changed:  36449    JR 36458

B.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 , 36447
Changed: 36438    JR 36447

-------------------------------

Total modification 2 bytes

 


Edited by Norman Sword, 12 April 2019 - 07:44 AM.


#9 Spider

Spider

    DEC (HL)

  • Administrator
  • 3,852 posts

Posted 10 April 2019 - 03:08 PM

Thanks Norman. :)


Changing order to chaos since 1984

#10 Spider

Spider

    DEC (HL)

  • Administrator
  • 3,852 posts

Posted 11 April 2019 - 12:54 PM

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 by Spider, 11 April 2019 - 03:12 PM.

Changing order to chaos since 1984




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users