Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

JSW hacks.

20 views
Skip to first unread message

Matt Wenham

unread,
Aug 11, 1997, 3:00:00 AM8/11/97
to

Hi folks,

Having looked at the JSW tech page off the ultimate fan page, I have a
few questions for you hackers out there:

1) Has anyone cracked the compression used to store the rooms in the
official JSW II?

2) In JSW I, the graphics used for Willy are changed in The Nightmare
Room. How is this done? Is it custom code, or through one of the
'reserved' or '???' bytes in the room spec?

3) Has anyone found what these room bytes are used for?

Thanks,

Matt Wenham...

John Elliott

unread,
Aug 11, 1997, 3:00:00 AM8/11/97
to

Matt Wenham (ma...@earthling.net) wrote:
: Hi folks,

: Having looked at the JSW tech page off the ultimate fan page, I have a
: few questions for you hackers out there:

: 2) In JSW I, the graphics used for Willy are changed in The Nightmare


: Room. How is this done? Is it custom code, or through one of the
: 'reserved' or '???' bytes in the room spec?

Custom code. Start disassembling at 9637h and you'll see:

R9637: LD A,(WILLY_Y)
ADD A,B
LD XH,82H ;Undocumented
LD XL,A
...snip...
LD D,09DH ;Willy sprite at 9Dxxh
LD A,(ROOM) ;The Nightmare Room
CP 1DH
JR NZ,R9660 ;$+08
LD D,0B6H
LD A,E ;Willy's sprite is the other way round from all
XOR 80H ;the other sprites in the game. So this XOR
LD E,A ;swaps L/R on the pig when it's used for Willy
;
;incidentally, the sprites in Manic Miner are the other way round from the
;sprites in Jet Set Willy (except Willy himself).
;

: 3) Has anyone found what these room bytes are used for?

They aren't. Unless you're using JSW128.

------------- http://www.seasip.demon.co.uk/index.html --------------------
John Elliott |BLOODNOK: "But why have you got such a long face?"
|SEAGOON: "Heavy dentures, Sir!" - The Goon Show
:-------------------------------------------------------------------------)

Matt Wenham

unread,
Aug 12, 1997, 3:00:00 AM8/12/97
to

John Elliott wrote:

> Custom code. Start disassembling at 9637h and you'll see:

Okay, thanks. This looks like it was taken from a larger disassembly -
is there a complete one for JSW available anywhere?

> : 3) Has anyone found what these [extra] room bytes are used for?

> They aren't. Unless you're using JSW128.

Care to enlighten us further?

Thanks,

Matt...

John Elliott

unread,
Aug 12, 1997, 3:00:00 AM8/12/97
to

Matt Wenham (ma...@earthling.net) wrote:

: > They aren't. Unless you're using JSW128.

: Care to enlighten us further?

Room+0DFh holds the address (in the R-5-2-0 memory map) of the guardian
table associated with that room.
I haven't allocated anything to Room+0EDh, Room+0EEh or Room+0EFh yet,
but you've given me an idea for one of those bytes...

John Elliott

unread,
Aug 12, 1997, 3:00:00 AM8/12/97
to

A few hours ago, I wrote:
: I haven't allocated anything to Room+0EDh, Room+0EEh or Room+0EFh yet,

: but you've given me an idea for one of those bytes...

Room+0EDh now means: sprite override.

If it's less than 80h, then the standard Willy sprite is used.
If it's more than 80h, it's the sprite page for the sprite to use instead.

It's a surprisingly easy change to make:

X9653: LD A,(8420h) ;room X9653: LD A,(80EDh) ;override
CP 1Dh ;nightmare CP 80h
JR NZ,+6 JR C,+6
LD D,B6h ;pig LD D,A
NOP

The JSW128 distribution should change in the next 24 hours, depending
on when Demon update homepages. See sig for url.

Ian Collier

unread,
Aug 12, 1997, 3:00:00 AM8/12/97
to

In article <871321...@ox.compsoc.org.uk>, j...@ox.compsoc.org.uk (John Elliott) wrote:
>: 3) Has anyone found what these room bytes are used for?

> They aren't. Unless you're using JSW128.

Or imc-modified-jsw, in which they are used to store a safe starting position
in each room to save you from getting into an infinite loop.
--
---- Ian Collier : i...@comlab.ox.ac.uk : WWW page (including Spectrum section):
------ http://www.comlab.ox.ac.uk/oucl/users/ian.collier/imc.html

New to this group? Answers to frequently-asked questions can be had from
http://www.jetman.demon.co.uk/speccy/faq/index.html .
Sam Coupé FAQ: http://www.mono.org/~unc/Coupe/FAQ.txt

Matt Wenham

unread,
Aug 13, 1997, 3:00:00 AM8/13/97
to

John Elliott wrote:

> It's a surprisingly easy change to make:

> X9653: LD A,(8420h) ;room X9653: LD A,(80EDh) ;override

^^^^^


> CP 1Dh ;nightmare CP 80h
> JR NZ,+6 JR C,+6
> LD D,B6h ;pig LD D,A
> NOP

Do I take it then that the current room is copied to the 8000h page when
the game is running? Or is this the case only in JSW128?

Matt...

Spike

unread,
Aug 13, 1997, 3:00:00 AM8/13/97
to

Matt Wenham (ma...@earthling.net) wrote:

Errrr.... The 48K speccy doesn't HAVE paging....
--
______________________________________________________________________________
|u5...@teach.cs.keele.ac.uk| "I'm alive!!! I can touch! I can taste! |
|Andrew Halliwell | I can SMELL!!! KRYTEN!!! Unpack Rachel and |
|Principal subjects in:- | get out the puncture repair kit!" |
|Comp Sci & Electronics | Arnold Judas Rimmer- Red Dwarf |
------------------------------------------------------------------------------
|GCv3.1 GCS/EL>$ d---(dpu) s+/- a- C++ U N++ o+ K- w-- M+/++ PS+++ PE- Y t+ |
|5++ X+/++ R+ tv+ b+ D G e>PhD h/h+ !r! !y-|I can't say F**K either now! :( |
------------------------------------------------------------------------------


John Elliott

unread,
Aug 13, 1997, 3:00:00 AM8/13/97
to

Matt Wenham (ma...@earthling.net) wrote:

: Do I take it then that the current room is copied to the 8000h page when
: the game is running? Or is this the case only in JSW128?

Yes in both. That's what made the 128k version possible in the first place.

Matt Wenham

unread,
Aug 13, 1997, 3:00:00 AM8/13/97
to

That's a really *cr@p* quote:content:sig ratio you've got there Spike.
Hint - the middle figure should be the largest. Anyhow...

Spike wrote:
> Errrr.... The 48K speccy doesn't HAVE paging....

I meant page as in 256 bytes of memory, ie 8000h to 80FFh.

Matt...

0 new messages