-
Posts
5,111 -
Joined
-
Last visited
Everything posted by IRF
-
Does anyone know if Richard Hallas is a member here?
-
Thanks Andy for merging these! They're all in the right order as well!
-
I thought I would include the link within the same post that now contains an Excel file which provides a hexadecimal translation of Richard's musical notes!
-
I've added a potentially useful Excel file to the original post in this thread.
-
Shout out to Andy (Spider) - I'm not sure whether or not this stuff should be in the 'Remakes' section instead? Also, I considered amalgamating the three tune-related threads into a single one, but I couldn't figure out how to alter the title of a topic (even one that I've created), or how to delete topics if they are defunct as a result of consolidating them into other topics. It that something that you or a moderator could do? I think a generic topic title like "Playing around with the in-game tune in JSW" would cover the longer/shorter/faster/slower tunes topics.
-
The standard in-game Jet Set Willy tune takes up 64 bytes. It is possible to alter the length of the code that the program selects when playing the tune, by a factor of 2 either way. So you could insert tunes that are either 32 bytes or 128 bytes in length. To play a 32-byte tune, simply alter the value of the byte at #8B48 to '3e'. (In original JSW, this will have the effect of just looping the first half of the 'Rich Man' tune, ignoring the second half.) To play a 128-byte tune, alter the value of the byte at #8B48 to 'fe'. You would then have to insert another 64 bytes of tune code immediately after the existing in-game tune - this would involve overwriting the [no longer necessary] 'security code entry' routine. (Otherwise the game will play 64 bytes of 'noise' - trying to interpret the 'code entry screen' data as a tune - before reverting back to the start of 'Rich Man'.)
-
To make the in-game music in Jet Set Willy play half as fast, change the value of #8B48 to 'fc' (i.e. the operand of the AND command at #8B47) and add an extra '0f' after the existing one at #8B49 (so that there are two consecutive RRCA instructions). N.B. To achieve this requires some consolidation to allow the extra byte to be inserted. However, if you don't mind losing the effect that deteriorates the pitch of the tune as Willy loses lives, then the 11 bytes from #8B51-#8B5B can all be NOPped out (filled with '00'), which is very handy for this purpose! If you are carrying out the latter change (removing the 'tune pitch deterioration' sub-routine), then you also need to alter the values of two other addresses - the '5a' instructions at #8B5F and #8B68 should be changed to '5e'. Other topics to follow: How to alter the code to allow for a tune that is twice as long (128 notes instead of 64), or half as long (32 notes).
-
I should clarify that the 'Guardian Halo/Shadow Bug Fix' doesn't eliminate the 'shadow' that occurs when a guardian's 2x2 square passes over Willy or other room elements (without a pixel collision, which is of course fatal), temporarily changing the Ink colour of part of Willy or the room elements that the guardian passes 'in front of'. It only prevents a 'square halo/shadow' against the screen's background (of the opposite 'Brightness Polarity' to the room's Air cells). i.e. an anomalous Paper colour within the 2x2 square (or 2x3 rectangle when the guardian isn't cell-row aligned).
-
To make the in-game music in Jet Set Willy play twice as fast, simply change the value of #8B48 to '3f' (i.e. the operand of an AND command) and NOP out (replace with '00') the byte at #8B49 (an RRCA instruction). To follow: How to slow down the in-game music...
-
Further Update: I have also fixed the problem described here: http://jswmm.co.uk/topic/184-guardian-aura-bug-fix/?p=7914 Update: for an optimised solution, see this post on page 3 of this thread: http://jswmm.co.uk/topic/184-guardian-aura-bug-fix/?do=findComment&comment=5587 ****** Here is a patch for the bug that is seen in Jet Set Willy in non-Black rooms, if a Guardian is present that has a different Brightness setting to the Air cells in that room. e.g. The Flying Pig in Emergency Generator. The following 'new' code should be added - I suggest you locate it between #96f4 and #970b: 7e e6 38 c2 f1 91 dd 7e 01 e6 0f c6 38 e6 47 4f 7e e6 38 a9 4f c3 fd 91 Then the existing code at #91ee to #91fc should be edited as follows (this is based on the suggested starting address for the new code listed above): c3 f4 96 dd 7e 01 e6 07 4f 7e e6 78 a9 4f 00 (The last byte is a NOPped out spare byte in the guardian-drawing routine.) The above patch is an amalgamation of two routines in the original Jet Set Willy code (one of which was previously unused, except in Manic Miner). It eliminates the 'Guardian Halo/Shadow' bug in non-Black rooms, whilst allowing a wider range of guardian colours (Bright and non-Bright) in rooms with Black screens). N.B. There is a simpler fix for the Guardian Halo/Shadow Bug that uses fewer bytes, but it would limit the colour palette of guardians throughout the game. i.e. with the simpler fix in place, all guardians on a given screen must be either Bright or non-Bright - even on Black screens where the Guardian Halo/Shadow Bug doesn't manifest itself. So for example, you would no longer see a Bright Red AND a non-Bright Red Monk in The Forgotten Abbey. Note also that the way the alternative guardian-drawing routine (a remnant from the Manic Miner code) is implemented, avoids the following bug from occurring: http://skoolkit.ca/disassemblies/manic_miner/reference/bugs.html#attributeCrash So the above fix really provides the 'best of both worlds'!
-
All in the same place, for convenience: http://skoolkit.ca/disassemblies/jet_set_willy/index.html http://skoolkid.github.io/jetsetwilly/ [The above in hex] http://skoolkit.ca/disassemblies/manic_miner/ http://skoolkid.github.io/manicminer/ [The above in hex] https://jswcentral.org/ http://www.binaryhexconverter.com/ http://www.miniwebtool.com/bitwise-calculator/ http://www.z80.info/z80oplist.txt http://www.z80.info/z80syntx.htm http://www.z80.info/z80code.htm http://www.z80.info/z80undoc3.txt http://www.z80.info/z80info.htm http://www.z80.info/z80undoc.htm http://www.z80.info/z80sflag.htm http://z80.info/z80flag.htm - T-States listed for each instruction http://www.worldofspectrum.org/faq/reference/z80reference.htm http://www.worldofspectrum.org/faq/reference/48kreference.htm http://www.worldofspectrum.org/faq/reference/128kreference.htm http://z80-heaven.wikidot.com/start http://www.breakintoprogram.co.uk/ https://chuntey.wordpress.com/category/z80-assembly/ http://www.worldofspectrum.org/ZXBasicManual/ http://jgmalcolm.com/z80/ http://www.worldofspectrum.org/Z80.html http://hallas.net/Software/music.htm I've also attached an Excel file with the values for each note (taken from the above link, Richard Hallas's document: 'A Miner Triad') converted into hexadecimal. Feel free to add! Musical Tone Codes in Hex.zip
-
So providing a single Earth cell two rows above the crumbly floor should allow Willy to jump through in quirky, logic-defying fashion!
-
Or if it was a quirky game, provide an 'innocent looking block' to jump through! (Does that work in MM?)
-
Ah, I hadn't thought of that. Still, it could be useful for other games that use the MM engine.
-
It's just struck me that the Pokes section of the Manic Miner disassembly could do with a Poke that stops crumbly platforms from crumbling. Could that be achieved by NOPping out all the commands that call up the routine at 35770?
-
I did think of Danny's point actually i.e. what if someone else gets there first? So by all means, publish it if you wish! Although maybe we could legitimately request that it's done in a 'low-key' manner? i.e. without posting a link on WoS saying "Look everybody, this is how to complete JSW The Nightmare Edition!" Perhaps I'm worrying too much - as Danny says, players are aware that rzx recordings are inherently spoilery! Anyway, well done on completing it Mickey!
-
Maybe keep it in the back pocket for a while? Let's see what the other guys think (Andy, Danny?)
-
I'll second that!
-
Did you complete the game in time?
-
There's a legitimate, but very convoluted reason for that! I'm glad you've provided a rationale though - he hasn't found his sea legs yet! :D Meanwhile, I suppose you're all at sea looking for that last item...
-
Is that when he's walking down the ramp into (or rather, onto) the sea?
-
That being the Hades one, I'm guessing?
-
Sorry, that's what I meant - the clock changes colour at 11:30.
-
So the clock's started flashing? :excl:
-
Which two? Watch the time limit...