We just released a Feb. 5 '89 prototype of DuckTales for the NES!
If you'd like to support our preservation efforts (and this wasn't cheap), please consider donating or supporting us on Patreon. Thank you!

Notes:Shadowrun (SNES)

From The Cutting Room Floor
Revision as of 01:59, 15 January 2016 by MegamanEXE95 (talk | contribs) (Added sprite list)
Jump to navigation Jump to search

This page contains notes for the game Shadowrun (SNES).


Location list

(this list and SNES addresses based on the North American version)

Hmmm...
To do:
are there unused rooms lurking?

Pro Action Replay code 9CFC6Cxx can be used to change the destination (for the first 256 exits only) when using the open Matchbox cheat. For the full 512 exit range, in a debugger set a write breakpoint on 7E2DE2, Step Into, and then enter your new value.

0000
0001 outside morgue
0002
0003 morgue, starting a new game
0004
0005
0006
0007
0008
0009
000A
000B
000C
000D
000E
000F
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
001A
001B
001C
001D
001E
001F morgue lobby
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
002A
002B
002C
002D
002E
002F
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
003A
003B
003C
003D
003E
003F
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
004A
004B
004C
004D
004E
004F
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
005A
005B
005C
005D
005E
005F
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
006A
006B
006C
006D
006E
006F
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
007A
007B
007C
007D
007E
007F
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
008A
008B
008C
008D
008E
008F
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099
009A
009B
009C
009D
009E
009F
00A0
00A1
00A2
00A3
00A4
00A5
00A6
00A7
00A8
00A9
00AA
00AB
00AC
00AD
00AE
00AF
00B0
00B1
00B2
00B3
00B4
00B5
00B6
00B7
00B8
00B9
00BA
00BB
00BC
00BD
00BE
00BF
00C0
00C1
00C2
00C3
00C4
00C5
00C6
00C7
00C8
00C9
00CA
00CB
00CC
00CD
00CE
00CF
00D0
00D1
00D2 debug room
00D3
00D4
00D5
00D6
00D7
00D8
00D9
00DA
00DB
00DC
00DD
00DE
00DF
00E0
00E1
00E2
00E3
00E4
00E5
00E6
00E7
00E8
00E9
00EA
00EB
00EC
00ED "You have reached the end. Thank you for playing Shadowrun. (C) 1993 DATAEAST. Developed by BEAM Software."
00EE
00EF
00F0
00F1
00F2
00F3
00F4
00F5
00F6
00F7
00F8
00F9
00FA
00FB
00FC
00FD
00FE
00FF

0100
0101
0102
0103
0104
0105
0106
0107
0108
0109
010A
010B
010C
010D
010E
010F
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119
011A
011B
011C
011D
011E
011F
0120
0121
0122
0123
0124
0125
0126
0127
0128
0129
012A
012B
012C
012D
012E
012F
0130
0131
0132
0133
0134
0135
0136
0137
0138
0139
013A
013B
013C
013D
013E
013F
0140
0141
0142
0143
0144
0145
0146
0147
0148
0149
014A
014B
014C
014D
014E
014F
0150
0151
0152
0153
0154
0155
0156
0157
0158
0159
015A
015B
015C
015D
015E
015F
0160
0161
0162
0163
0164
0165
0166
0167
0168
0169
016A
016B
016C
016D
016E
016F
0170
0171
0172
0173
0174
0175
0176
0177
0178
0179
017A
017B
017C Dark Blade weapons shop
017D
017E
017F
0180
0181
0182
0183
0184
0185
0186
0187
0188
0189
018A
018B
018C
018D
018E
018F
0190
0191
0192
0193
0194
0195
0196
0197
0198
0199
019A
019B
019C
019D
019E
019F
01A0
01A1
01A2
01A3
01A4
01A5
01A6
01A7
01A8
01A9
01AA
01AB
01AC
01AD
01AE
01AF
01B0
01B1
01B2
01B3
01B4
01B5
01B6
01B7
01B8
01B9
01BA
01BB
01BC
01BD
01BE
01BF
01C0
01C1
01C2
01C3
01C4
01C5
01C6
01C7
01C8
01C9
01CA
01CB
01CC
01CD
01CE
01CF
01D0
01D1
01D2
01D3
01D4
01D5
01D6
01D7
01D8
01D9
01DA
01DB
01DC
01DD
01DE
01DF
01E0
01E1
01E2
01E3
01E4
01E5
01E6
01E7
01E8
01E9
01EA
01EB
01EC
01ED
01EE
01EF
01F0
01F1
01F2
01F3
01F4
01F5
01F6
01F7
01F8
01F9
01FA
01FB
01FC
01FD
01FE
01FF

Script commands

command, format, description

00     00 xx            push xx

0A     0A xx            push xx + #$FF00

14     14 xxxx          push xxxx

16     16 ??

2C     2C ??

34     34 ??

44     44 jjjj          branch. jjjj = number of bytes to branch from beginning of script

48     48 jjjj          jump. jjjj = number of bytes to jump from beginning of script

56     56               end script

58     58 ii            multi-purpose, see below section. ii is an index for an unknown table starting at 82D895, and it's also * 2 for a jump table starting at 82D604

5E     5E               subtraction

7E     7E

80     80

86     86               increment last item placed on stack

8C     8C               comparison

9C     9C               comparison

AA     AA               check if equal

BA     BA

BC     BC (unk)         display text, may be a variable length command

BE     BE

C0     C0               push #$0000

C2     C2

Script command 58

58     58 4F            used to get x coord in Matchbox script
58     58 50            used to get y coord in Matchbox script

Breakpoints

  • 80F353, execute - breaks on each script command (NA version)
  • 80F389, execute - breaks on each script command (PAL English version)
  • 80F2ED, execute - breaks on each script command (PAL German version)

Debug room

Shadowrun SNES research sidewalk Matchbox beep 1 enable.png

You must be standing inside the red box to enable the first Matchbox beep.

Matchbox script

The Matchbox script is located at offset 0E7C49-0E7D7F (SNES address 9CFC49-9CFD7F) in the North American version.

0E7C40 |                       2C 0000 1858 570A
0E7C50 | FFAA 442F 0014 0002 5813 1400 027E BE44
0E7C60 | 2C00 18E2 2D00 1A58 1258 7F00 D258 5600
0E7C70 | 01BA 589E BC48 3301 0080 5813 0080 AA44
0E7C80 | 3301 00F0 0081 1400 0800 0400 1900 1400
0E7C90 | 0258 C758 7E00 0158 17AA 587E 001F 5817
0E7CA0 | AA80 4433 0158 2858 4F14 6602 5E34 0358
0E7CB0 | 2858 5014 D501 5E34 0500 1858 5700 01AA
0E7CC0 | 1603 C09C 7E16 05C0 9C7E 587E 0001 5817
0E7CD0 | AA7E 0018 5857 0002 AA16 03C0 8C7E 1605
0E7CE0 | C09C 7E58 7E00 0158 17AA 7E80 0018 5857
0E7CF0 | 0003 AA16 03C0 9C7E 1605 C08C 7E58 7E00
0E7D00 | 0158 17AA 7E80 0018 5857 0004 AA16 03C0
0E7D10 | 8C7E 1605 C08C 7E58 7E00 0158 17AA 7E80
0E7D20 | 0018 5857 0005 AA58 7E00 1F58 17AA 7E80
0E7D30 | 442E 0100 1858 5700 03AA 44FE 0000 0100
0E7D40 | FF00 500A FF58 4C00 1858 5700 05AA 4418
0E7D50 | 010A FE00 1858 1200 0100 FF00 660A FF58
0E7D60 | 4C00 0300 FF00 4E0A FF58 4C00 1858 5786
0E7D70 | 0018 5812 4833 01C0 0018 5812 C258 B856

offset, SNES address, commands, description

startup
0E7C49 | 9CFC49 | 2C 00
0E7C4B | 9CFC4B | 00 18         push #$18
0E7C4D | 9CFC4D | 58 57         7E3BBB + 18 = 7E3BD3, copy cheat counter to 7E0000
0E7C4F | 9CFC4F | 0A FF         push #$FFFF
0E7C51 | 9CFC51 | AA            compare cheat counter to #$FFFF
0E7C52 | 9CFC52 | 44 2F 00      branch command 9CFC49 + 002F = 9CFC78 (goto 9CFC78 if cheat not already enabled)

opened Matchbox menu with cheat active
0E7C55 | 9CFC55 | 14 00 02
0E7C58 | 9CFC58 | 58 13

exit Matchbox menu or Examine Matchbox with cheat active
0E7C5A | 9CFC5A | 14 00 02
0E7C5D | 9CFC5D | 7E
0E7C5E | 9CFC5E | BE
0E7C5F | 9CFC5F | 44 2C 00      branch command 9CFC49 + 002C = 9CFC75

Examine Matchbox with cheat active
0E7C62 | 9CFC62 | 18 E2 4D
0E7C65 | 9CFC65 | 00 1A         push #$1A
0E7C67 | 9CFC67 | 58 12
0E7C69 | 9CFC69 | 58 7F
0E7C6B | 9CFC6B | 00 D2         push #$D2 (map D2 = debug room)
0E7C6D | 9CFC6D | 58 56
0E7C6F | 9CFC6F | 00 01         push #$01
0E7C71 | 9CFC71 | BA
0E7C72 | 9CFC72 | 58 9E
0E7C75 | 9CFC75 | 48 33 01      jump 9CFC49 + 0133 = 9CFD7C

opened Matchbox menu without cheat active
0EFC78 | 9CFC78 | 00 80         push #$80
0E7C7A | 9CFC7A | 58 13

exit Matchbox menu or Examine Matchbox without cheat active
0E7C7C | 9CFC7C | 00 80         push #$80
0E7C7E | 9CFC7E | AA            comparison
0E7C7F | 9CFC7F | 44 33 01      branch command 9CFC49 + 0133 = 9CFD7C

Examine Matchbox without cheat active
0E7C82 | 9CFC82 | 00 F0         push #$F0
0E7C84 | 9CFC84 | 00 81         push #$81
0E7C86 | 9CFC86 | 14 00 08
0E7C89 | 9CFC89 | 00 04         push #$04
0E7C8B | 9CFC8B | 00 19         push #$19
0E7C8D | 9CFC8D | 00 14         push #$14
0E7C8F | 9CFC8F | 00 02         push #$02
0E7C91 | 9CFC91 | 58 C7
0E7C93 | 9CFC93 | 58 7E
0E7C95 | 9CFC95 | 00 01         push #$01 (map 01 = outside morgue)
0E7C97 | 9CFC97 | 58 17
0E7C99 | 9CFC99 | AA            comparison
0E7C9A | 9CFC9A | 58 7E
0E7C9C | 9CFC9C | 00 1F         push #$1F (map 1F = morgue lobby)
0E7C9E | 9CFC9E | 58 17
0E7CA0 | 9CFCA0 | AA            comparison
0E7CA1 | 9CFCA1 | 80
0E7CA2 | 9CFCA2 | 44 33 01      branch command 9CFC49 + 0133 = 9CFD7C (goto 9CFD7C if on wrong map)

0E7CA5 | 9CFCA5 | 58 28
0E7CA7 | 9CFCA7 | 58 4F         get x coord
0E7CA9 | 9CFCA9 | 14 66 02      push #$0266 minimum x coord (see screenshot above)
0E7CAC | 9CFCAC | 5E            subtract minimum x coord from player x coord
0E7CAD | 9CFCAD | 34 03
0E7CAF | 9CFCAF | 58 28
0E7CB1 | 9CFCB1 | 58 50         get y coord
0E7CB3 | 9CFCB3 | 14 D5 01      push #$01D5 minimum y coord (see screenshot above)
0E7CB6 | 9CFCB6 | 5E            subtract minimum y coord from player y coord
0E7CB7 | 9CFCB7 | 34 05
0E7CB9 | 9CFCB9 | 00 18         push #$18
0E7CBB | 9CFCBB | 58 57         7E3BBB + 18 = 7E3BD3, copy cheat counter to 7E0000
0E7CBD | 9CFCBD | 00 01         push #01
0E7CBF | 9CFCBF | AA            compare cheat counter to #$01
0E7CC0 | 9CFCC0 | 16 03
0E7CC2 | 9CFCC2 | C0            push #$0000
0E7CC3 | 9CFCC3 | 9C            comparison
0E7CC4 | 9CFCC4 | 7E
0E7CC5 | 9CFCC5 | 16 05
0E7CC7 | 9CFCC7 | C0            push #$0000
0E7CC8 | 9CFCC8 | 9C            comparison
0E7CC9 | 9CFCC9 | 7E
0E7CCA | 9CFCCA | 58 7E
0E7CCC | 9CFCCC | 00 01         push #$01
0E7CCE | 9CFCCE | 58 17
0E7CD0 | 9CFCD0 | AA            comparison
0E7CD1 | 9CFCD1 | 7E
0E7CD2 | 9CFCD2 | 00 18         push #$18
0E7CD4 | 9CFCD4 | 58 57         7E3BBB + 18 = 7E3BD3, copy cheat counter to 7E0000
0E7CD6 | 9CFCD6 | 00 02         push #$02
0E7CD8 | 9CFCD8 | AA            compare cheat counter to #$02
0E7CD9 | 9CFCD9 | 16 03
0E7CDB | 9CFCDB | C0            push #$0000
0E7CDC | 9CFCDC | 8C            comparison
0E7CDD | 9CFCDD | 7E
0E7CDE | 9CFCDE | 16 05
0E7CE0 | 9CFCE0 | C0            push #$0000
0E7CE1 | 9CFCE1 | 9C            comparison
0E7CE2 | 9CFCE2 | 7E
0E7CE3 | 9CFCE2 | 58 7E
0E7CE5 | 9CFCE5 | 00 01         push #$01
0E7CE7 | 9CFCE7 | 58 17
0E7CE9 | 9CFCE9 | AA            comparison
0E7CEA | 9CFCEA | 7E
0E7CEB | 9CFCEB | 80
0E7CEC | 9CFCEC | 00 18         push #$18
0E7CEE | 9CFCEE | 58 57         7E3BBB + 18 = 7E3BD3, copy cheat counter to 7E0000
0E7CF0 | 9CFCF0 | 00 03         push #$03
0E7CF2 | 9CFCF2 | AA            compare cheat counter to #$03
0E7CF3 | 9CFCF3 | 16 03
0E7CF5 | 9CFCF5 | C0            push #$0000
0E7CF6 | 9CFCF6 | 9C            comparison
0E7CF7 | 9CFCF7 | 7E
0E7CF8 | 9CFCF8 | 16 05
0E7CFA | 9CFCFA | C0            push #$0000
0E7CFB | 9CFCFB | 8C            comparison
0E7CFC | 9CFCFC | 7E
0E7CFD | 9CFCFD | 58 7E
0E7CFF | 9CFCFF | 00 01         push #$01
0E7D01 | 9CFD01 | 58 17
0E7D03 | 9CFD03 | AA            comparison
0E7D04 | 9CFD04 | 7E
0E7D05 | 9CFD05 | 80
0E7D06 | 9CFD06 | 00 18         push #$18
0E7D08 | 9CFD08 | 58 57         7E3BBB + 18 = 7E3BD3, copy cheat counter to 7E0000
0E7D0A | 9CFD0A | 00 04         push #$04
0E7D0C | 9CFD0C | AA            compare cheat counter to #$04
0E7D0D | 9CFD0D | 16 03
0E7D0F | 9CFD0F | C0            push #$0000
0E7D10 | 9CFD10 | 8C            comparison
0E7D11 | 9CFD11 | 7E
0E7D12 | 9CFD12 | 16 05
0E7D14 | 9CFD14 | C0            push #$0000
0E7D15 | 9CFD15 | 8C            comparison
0E7D16 | 9CFD16 | 7E
0E7D17 | 9CFD17 | 58 7E
0E7D19 | 9CFD19 | 00 01         push #$01
0E7D1B | 9CFD1B | 58 17
0E7D1D | 9CFD1D | AA            comparison
0E7D1E | 9CFD1E | 7E
0E7D1F | 9CFD1F | 80
0E7D20 | 9CFD20 | 00 18         push #$18
0E7D22 | 9CFD22 | 58 57         7E3BBB + 18 = 7E3BD3, copy cheat counter to 7E0000
0E7D24 | 9CFD24 | 00 05         push #$05
0E7D26 | 9CFD26 | AA            compare cheat counter to #$05
0E7D27 | 9CFD27 | 58 7E
0E7D29 | 9CFD29 | 00 1F         push #$1F (map 1F = morgue lobby)
0E7D2B | 9CFD2B | 58 17
0E7D2D | 9CFD2D | AA            comparison
0E7D2E | 9CFD2E | 7E
0E7D2F | 9CFD2F | 80
0E7D30 | 9CFD30 | 44 2E 01      branch command 9CFC49 + 012E = 9CFD77 (goto 9CFD77 if one of the cheat steps failed)

beeping Matchbox section
0E7D33 | 9CFD33 | 00 18         push #18
0E7D35 | 9CFD35 | 58 57         7E3BBB + 18 = 7E3BD3, copy cheat counter to 7E0000
0E7D37 | 9CFD37 | 00 03         push #$03 
0E7D39 | 9CFD39 | AA            compare cheat counter to #$03
0E7D3A | 9CFD3A | 44 FE 00      branch command 9CFC49 + 00FE = 9CFD47 (goto 9CFC47 if cheat counter != #$03)

Matchbox cheat counter == #$03 double beep section
0E7D3D | 9CFD3D | 00 01         push #$01
0E7D3F | 9CFD3F | 00 FF         push #$FF
0E7D41 | 9CFD41 | 00 50         push #$50 (sound index 50)
0E7D43 | 9CFD43 | 0A FF         push #$FFFF
0E7D45 | 9CFD45 | 58 4C

0E7D47 | 9CFD47 | 00 18         push #$18
0E7D49 | 9CFD49 | 58 57         7E3BBB + 18 = 7E3BD3, copy cheat counter to 7E0000
0E7D4B | 9CFD4B | 00 05         push #$05
0E7D4D | 9CFD4D | AA            compare cheat counter to #$05
0E7D4E | 9CFD4E | 44 18 01      branch command 9CFC49 + 0118 = 9CFD61 (goto 9CFD61 if cheat counter != #$05)

all cheat conditions met, enable cheat
0E7D51 | 9CFD51 | 0A FE         push #$FFFE
0E7D53 | 9CFD53 | 00 18         push #$18
0E7D55 | 9CFD55 | 58 12         store result to cheat counter, 7E3BBB + 18 = 7E3BD3
0E7D57 | 9CFD57 | 00 01         push #$01
0E7D59 | 9CFD59 | 00 FF         push #$FF
0E7F5B | 9CFD5B | 00 66         push #$66
0E7F5D | 9CFD5D | 0A FF         push #$FFFF

0E7F61 | 9CFD61 | 00 03         push #$03
0E7F63 | 9CFD63 | 00 FF         push #$FF
0E7F65 | 9CFD65 | 00 4E         push #$4E (sound index 4E)
0E7F67 | 9CFD67 | 0A FF         push #$FFFF
0E7F69 | 9CFD69 | 58 4C
0E7F6B | 9CFD6B | 00 18         push #$18
0E7F6D | 9CFD6D | 58 57         7E3BBB + 18 = 7E3BD3, copy cheat counter to 7E0000
0E7D6F | 9CFD6F | 86            cheat counter + 1
0E7D70 | 9CFD70 | 00 18         push #$18
0E7D72 | 9CFD72 | 58 12         store result to cheat counter, 7E3BBB + 18 = 7E3BD3
0E7D74 | 9CFD74 | 48 33 01      jump 9CFC49 + 0133 = 9CFD7C

failed cheat, reset cheat counter back to #$0000
0E7D77 | 9CFD77 | C0            push #$0000
0E7D78 | 9CFD78 | 00 18         push #$18
0E7D7A | 9CFD7A | 58 12         store result to cheat counter, 7E3BBB + 18 = 7E3BD3

exit
0E7D7C | 9CFD7C | C2
0E7D7D | 9CFD7D | 58 B8
0E7F7F | 9CFD7F | 56            end

Matchbox script (Japanese version)

The Matchbox script is located at offset 0F6864-0F6884 (SNES address 9EE864-9EE884) in the Japanese version.

000F6860           2C00 0080 5815 0080 AA44 1D00
000F6870 00F0 0081 1400 0800 0400 1900 1100 0258
000F6880 D0C2 58C1 56

The cheat sequence is missing.

Winter CES Warp

The Winter CES Warp script is located at offset 0E7EE0-0E7F26 (SNES address 9CFEE0-9CFF26) in the North American version. It's located immediately after the script for picking up the Dog Food in the debug room.

000E7EE0 000A 1460 02C0 0003 001C 0002 BA58 C700 ...`.........X..
000E7EF0 0100 1658 1200 042E FC3B 0005 2E04 3C00 ...X.....;....<.
000E7F00 022E 093C 0002 2E0B 3C00 022E 073C 0002 ...<....<....<..
000E7F10 2E0C 3C00 022E 083C 5820 58A2 00D2 5856 ..<....<X X...XV
000E7F20 0001 BA58 9EBC 56                       ...X..V

Note the push #$D2 command for the debug room map index.

A pointer to this script (#$DEFE) is located at offset 015F52. To reach this pointer, A must contain index #$011D after executing a LDA $8DB036,x instruction, but no matches for #$011D were found in the bank.

Dark Blade weapons shop - Bulletproof Vest

The script involved with determining which items are available when you enter the shop starts at offset 0E5E13 (SNES address 9CDE13) in both the PAL English and PAL German versions. There's a couple of byte differences in the body and it's currently unknown what effects these have.

Of interest is this section (PAL English version) checking for Out of Stock status:

0E5E73 | 9CDE73 | 16 05
0E5E75 | 9CDE75 | 58 BB
0E5E77 | 9CDE77 | 00 01         push #$01
0E5E79 | 9CDE79 | 7E
0E5E7A | 9CDE7A | BE
0E5E7B | 9CDE7B | 44 95 00      branch command 9CDE13 + 0095 = 9CDEA8 (goto 9CDEA8 if item is in glass case) change command from "44 95 00" branch to "48 95 00" jump for all items available

A loop runs the above script 10x for the ten glass cases and from that this list of the item memory addresses is obtained (again, PAL English version):

$80/CB32 BF 01 00 7E LDA $7E0001,x[$7E:3838] 01. Enfield AS-7 assault cannon - 40,000 nuyen
$80/CB32 BF 01 00 7E LDA $7E0001,x[$7E:3833] 02. Full body suit 30,000 nuyen
$80/CB32 BF 01 00 7E LDA $7E0001,x[$7E:309F] 03. Burlitzer's Finest Grenade - 80 nuyen
$80/CB32 BF 01 00 7E LDA $7E0001,x[$7E:3829] 04. Partial Body Suit - 20,000 nuyen
$80/CB32 BF 01 00 7E LDA $7E0001,x[$7E:3824] 05. Fully Concealable Jacket - 13,000 nuyen
$80/CB32 BF 01 00 7E LDA $7E0001,x[$7E:381F] 06. Bullet Proof Vest - 8,000 nuyen
$80/CB32 BF 01 00 7E LDA $7E0001,x[$7E:381A] 07. Heckler Koch 277 assault rifle - 24,000 nuyen
$80/CB32 BF 01 00 7E LDA $7E0001,x[$7E:3815] 08. Uzi III sub-machine gun - 30,000 nuyen
$80/CB32 BF 01 00 7E LDA $7E0001,x[$7E:3810] 09. Defiance T-250 shotgun - 12,000 nuyen
$80/CB32 BF 01 00 7E LDA $7E0001,x[$7E:380B] 10. Ares Viper long range pistol - 3,000 nuyen

The memory addresses shifted in the PAL German version:

$80/CAF4 BF 01 00 7E LDA $7E0001,x[$7E:3833] 01.
$80/CAF4 BF 01 00 7E LDA $7E0001,x[$7E:382E] 02.
$80/CAF4 BF 01 00 7E LDA $7E0001,x[$7E:309F] 03.
$80/CAF4 BF 01 00 7E LDA $7E0001,x[$7E:3824] 04.
$80/CAF4 BF 01 00 7E LDA $7E0001,x[$7E:381F] 05.
$80/CAF4 BF 01 00 7E LDA $7E0001,x[$7E:381A] 06. (bulletproof vest)
$80/CAF4 BF 01 00 7E LDA $7E0001,x[$7E:3815] 07.
$80/CAF4 BF 01 00 7E LDA $7E0001,x[$7E:3810] 08.
$80/CAF4 BF 01 00 7E LDA $7E0001,x[$7E:380B] 09.
$80/CAF4 BF 01 00 7E LDA $7E0001,x[$7E:3806] 10.

In the PAL English version, memory address 7E381F for the Bullet Proof Vest is set to #$01 Out of Stock when starting a new game.

In the PAL German version, memory address 7E381A for the Bullet Proof Vest is set to #$00 available when starting a new game.

Sprite list

Located around 7E3F54 are the sprites used in the current room. Look for Jake's sprite ID which is 000B and change it to any of the following (Avoid crashes by moving the cursor around to change sprite instead of walking):

0000 Heavy Dude (Purple pants)
0001 A waitress
0002 Club Manager
0003 Mortician
0004 Loyal citizen (Woman, green)
0005 Dwarf
0006 Samurai Warrior
0007 Gang member (Woman, black)
0008 Doggie
0009 Heavy Bouncer
000A Massive Orc (Pink)
000B Jake
000C Decker (Green pants)
000D Decker (Red, blue pants)
000E Jamaican
000F Orc (Blue)
0010 Johnny-The drummer
0011 Keyboardist
0012 Gavan-The guitarist
0013 Slab
0014 Scary Ghoul (Purple)
0015 Maria Mercurial
0016 A Busy Man
0017 Club patron...
0018 Office door
0019 Old town shop doors
001A Crypt door
001B Fridge door
001C Dot (Coffin Lid)
001D Dot (Water Fountain)
001E Indian Shaman (Crypt)
001F Animated fan
0020 (A piece of something)
0021 Filing Cabinet
0022 Video Phone
0023 Apartment door
0024 Jake opening slab
0025 Jake falling off slab
0026 Train
0027 Well dressed... (Dancing girl, red)
0028 Dancing Hippie! (Green)
0029 Train doors
002A Busy Man (Sitting w drink, red striped)
002B Miserable Man (Sitting w drink, red striped)
002C Customer (Spike hair)
002D Orc (Customer, white/purple)
002E Slick Dude (Long hair) (Unused?)
002F Lonely Gal (Dancing girl, green)
0030 hmmm.... (Alley dog)
0031 Club Manager (Bald)
0032 She's choosing (Blue, red hair)
0033 Happy Customer (Sitting w drink, red striped)
0034 Bystander (Green shirt, white pants)
0035 Noble Citizen (Green shirt, white pants)
0036 Stall Keeper (Green clothes)
0037 Shady character (Glutman)
0038 Street kid (Dark, green shirt)
0039 Street dweller (Arena character)
003A Street scum (Arena character)
003B Street Scum (Legs out)
003C Street scum (Legs out)
003D Slum dweller (Arena character)
003E Street dweller (Face covered)
003F Street scum (Face covered)
0040 Poor street dweller (Arena character, red)
0041 Street scum (Arena character, black)
0042 Animated creature behind bars (Arena character, Front)
0043 Animated creature behind bars (Arena character, Left side)
0044 Animated creature behind bars (Arena character, Right side)
0045 Red lamp (Front)
0046 Red lamp (Right side)
0047 Red lamp (Left side)
0048 Seems familiar... (Fat man)
0049 Business Man (Blue)
004A Fire barrel
004B Volcano doors
004C Person (Watching left and right, moving arms)
004D Naga (Green)
004E Scalpel
004F Tickets
0050 Credstick
0051 Torn Paper
0052 Slap Patch
0053 Memo
0054 Earth projectile
0055 Volcano smoke
0056 Volcano smoke
0057 Dot (Bulletin Board)
0058 Troll Decker
0059 Magic user (Shaman)
005A Gang Leader (Guns, shooting while running)
005B Mercenary
005C Gang Member (Dark, no guns, green hair)
005D Gang Member (Dark, no guns, purple hair)
005E Gorgax (Unused yellow orc, running sprite isn't animated)
005F Gang Member (White, no guns, green hair)
0060 Heavy Orc (Orange, unused?)
0061 Ferocious Orc (Purple)
0062 Glass doors
0063 Large orc (Red)
0064 Rat Shaman
0065 Ghoul (Fast Dark Blade version)
0066 Sentry Gun
0067 Cruel Man (Blue)
0068 Poison Ooze (Red slime)
0069 Slimy toxic waste (Green slime)
006A Giant Rat (Red)
006B Vampire!
006C Station doors closed
006D Station doors closed
006E Scientist (Yellow)
006F Scientist (Green)
0070 Scientist (Blue)
0071 Scientist (Red)
0072 Dog food
0073 (Dog food sprite)
0074 (Dog food sprite)
0075 Wolf
0076 Green ship door
0077 Ship switch
0078 Jester Spirit
0079 Purple car
007A Some special explosion
007B Iced Tea
007C Door Key
007D Broken Gate
007E Matchbox (Blue car)
007F Magic Fetish (Blue car)
0080 Blue car
0081 Green car
0082 Orange car
0083 Orange car
0084 Brown gate
0085 Shades
0086 Arena owner
0087 Gray elevator
0088 Octopus
0089 Small white square
008A Little boy
008B Secretary (Green)
008C Drake
008D Drake flame
008E Thin smoke
008F Dog spirit
0090 Jester door
0091 Bat
0092 Docks door
0093 Blue elevator (Right side)
0094 Blue elevator (Left side)
0095 Jake operating table
0096 Kitsune singing
0097 Street Doc
0098 Dog Collar
0099 NPC Death animation & body
009A Strobe
009B Stake
009C Shopkeeper
009D Mage (Purple)
009E Nuyen
009F Dot (Cyberware)
00A0 Akimi
00A1 Damage digits
00A2 Boat driver
00A3 Talisman Case
00A4 Paperweight
00A5 (Potion bottles sprite)
00A6 (Potion bottles sprite)
00A7 Gun Case
00A8 Beretta Pistol
00A9 (Gun Case sprite)
00AA (Gun Case sprite)
00AB (Gun Case sprite)
00AC Kitsune
00AD Dermal Plating
00AE Boosted Reflexes
00AF Skill Software
00B0 Road spotlight
00B1 Jake blindfolded
00B2 Dot (Computer)
00B3 Cyberdeck
00B4 Man walking to caryards
00B5 Orc walking to caryards
00B6 Zip-Gun
00B7 Leather Jacket
00B8 Grenade explosion
00B9 Grenade (Trap)
00BA Station door
00BB Molotov
00BC Person (Green shirt, black pants)
00BD Ghoul (Green)
00BE Ghoul (Yellow)
00BF Dumpster sniper
00C0 Dumpster sniper
00C1 Pool of ink
00C2 Grass hitman
00C3 Ice block
00C4 Fire spirit
00C5 Spinning shield
00C6 Peephole
00C7 Bronze key
00C8 Iron key
00C9 Roof hitman
00CA Window hitman
00CB Window hitman
00CD (Gun Case sprite)
00CE (Gun Case sprite)
00CF Mesh Jacket
00D0 (Jacket sprite)
00D1 (Jacket sprite)
00D2 (Jacket sprite)
00D3 (Jacket sprite)
00D4 The King
00D5 Doctor
00D6 Jake dead
00D7 Poison Ooze (Gray slime)
00D8 Poison Ooze (Black slime)
00D9 Dot (Bed)
00DA Magic effect
00DB (Tickets sprite)
00DC Orb
00DD Giant Rat (Black)
00DE Safe door
00DF Naga (Red)
00E0 Bone
00E1 Mage (White)
00E2 Toxic Water (Gray)
00E3 Serpent Scales
00E4 Safe key
00E5 Password
00E6 Blood
00E7 More blood
00E8 (Paperweight sprite)
00E9 Light orb/explosion?
00EA Magic orb?
00EB Blue explosion
00EC Dot (Leaves)
00ED Dot (AI Computer)
00EE Uzi III SMG (Guitarist)
00EF DF_MT-AI (Guitarist)
00F0 DF_DB-Jester (Guitarist)
00F1 DF_DR 1-4 (Guitarist)
00F2 DF_DR 2-4 (Guitarist)
00F3 DF_DR 3-4 (Guitarist)
00F4 DF_DR 4-4 (Guitarist)
00F5 DF_DR-VOLCANO (Guitarist)
00F6 DF_DS-PUSHKIN (Guitarist)
00F7 DF_DS-FAILURE (Guitarist)
00F8 DF_DS-AI END (Guitarist)
00F9 DF_DS-TARGET (Guitarist)
00FA DF_DS-AKIMI (Guitarist)
00FB DF_AN-PAYMENT (Guitarist)
00FC DF_AN-ANTI-AI (Guitarist)
00FD DF_DR-MATRIX (Guitarist)
00FE Larry On Guitar
00FF Ripped Note
0100 Spinning triangle
0101 Explosives
0102 Green bottle
0103 Detonator
0104 Broken bottle
0105 Time bomb (Gray Drake head)
0106 Drake (Dead)
0107 Helicopter Pilot
0108 Mermaid Scales
0109 Dog Tag
010A Tiny orb
010B Crowbar
010C Hotel Manager
010D DF_BADNEWS (Doctor)
010E Mortician
010F Vladimir
0110 Doors, walls
0111 Mobile TV phone
0112 Colt L36 Pistol (money with invalid palette?)
0113+ Crashes

Misc.

7E2FA2 - location index in Japanese version