Jazz Jackrabbit 2 stores a lot of game information in the computer’s memory. Various programs edit the values stored in the memory to enhance the gameplay. All memory locations are given in hexadecimal.
Something that seems to work in most cases is using the adress you know for 1.23 to calculate the one for 1.24. This doesn’t always work, but the formula is:
1.23 + 0×23620 = TSF
TSF – 0×23620 = 1.23
These are memory variables for which each player has a different address. The addresses here are given for player 1, but they can be shifted to the other players by adding 5A4 to the memory addresses. For example, the address for Player 4’s X-position would be:
5A4EEC + (3*5A4) = 5A5FD8.
This is however not always the case. For example when handling connections the offset is +1AC.
Address | Type | Description |
---|---|---|
5A4EEC | Integer | X-position in microtwips. |
5A4EF0 | Integer | Y-position in microtwips. |
5A4EF6 | Short | X-speed. |
5A4EFA | Short | Y-speed. |
5A4F14 | Short | The current animation your character is playing (read-only). |
5A4F1A | Byte | Freezetime. |
5A4F1E | Byte | Health (Range: 0 to 5). |
5A4F28 | String | Player name (maximal length: 24). |
5A4F68 | Integer | Whether the player is flying. Possible values: -1 for airboard, 0 for no flight, 1 for helicopter ears. |
5A4F94 | Integer | Number of double jumps already used |
5A501C | Integer | Fastfire: the fastfire delay of the player. |
5A5028 | Integer | The current weapon the player is using (Range: 0 to 9, 11,12,13 for ‘secret’ weapons). |
5A5080 | Integer | The amount of lives someone has. |
5A508C | Integer | How much blink time the player has left, measured in gameticks. |
5A52A8 | Integer | The current player score (when in singleplayer mode). |
5A52AC | Integer | Echo/shadow of the previous value (score). |
5A52B0 | Integer | The amount of gobbled food. Every 100 the player gets a sugar rush. |
5A52B4 | Integer | The amount of coins picked up. |
5A52B8 | Integer | The amount of gems picked up. |
5A52E0 | Integer | Ammo for weapon 1 (Blaster). |
5A52E4 | Integer | Ammo for weapon 2 (Bouncers). |
5A52E8 | Integer | Ammo for weapon 3 (Etcetera). |
5A52EC | Integer | Ammo for weapon 4. |
5A52F0 | Integer | Ammo for weapon 5. |
5A52F4 | Integer | Ammo for weapon 6 (multiplied with 32). |
5A52F8 | Integer | Ammo for weapon 7. |
5A52FC | Integer | Ammo for weapon 8. |
5A5300 | Integer | Ammo for weapon 9. |
5A5308 | Boolean | Whether weapon 1 is powered up or not (0 or 1). |
5A5309 | Boolean | Whether weapon 2 is powered up or not (0 or 1). |
5A530A | Boolean | Whether weapon 3 is powered up or not (0 or 1). |
5A530B | Boolean | Whether weapon 4 is powered up or not (0 or 1). |
5A530C | Boolean | Whether weapon 5 is powered up or not (0 or 1). |
5A530D | Boolean | Whether weapon 6 is powered up or not (0 or 1). |
5A530E | Boolean | Whether weapon 7 is powered up or not (0 or 1). |
5A530F | Boolean | Whether weapon 8 is powered up or not (0 or 1). |
5A5310 | Boolean | Whether weapon 9 is powered up or not (0 or 1). |
5A534C | Integer | The shield currently selected. |
5A5350 | Integer | Amount of shield time left, measured in gameticks. |
5A535C | Integer | The current player character, stored as the index of their animation set in Anims.j2a. (1.23: Jazz=54, Spaz=85, Bird=8, Frog=46. 1.24: Jazz=55, Spaz=89, Lori=61, Bird=8, Frog=47.) |
5A5360 | Integer | The original player character (before possible morphing). |
5A539C | Integer | The amount of sugar rush time left, measured in gameticks. |
5A53D2 | Short | Camera Position X |
5A4F74 | Short | Camera Position Y |
5A5410 | Integer | The amount of roasts the player has. |
5A544C | Integer | Fur color. |
5A5458 | Integer | The team the player is on. (0=Blue, 1=Red). |
5A545C | Integer | Has flag? (0=No flag, other=Object ID of flag). |
5A5464 | Integer | The ID of the socket the game is currently using. |
5A5468 | Integer | The player number within the local computer itself (range: 0 to 3). |
5A546C | Integer | Player in F9-list (0=Player doesn’t exist, 2=Otherwise). |
5FB21C | Integer | Player connected (5=True, 0=False, 1=muted, uses 1AC as offset). |
Address | Type | Description |
---|---|---|
4CA910 | Boolean | Playernames visible or not (same as F8) |
4CDA24 | String | Version of JJ2 that is running. |
4D3E30 | Integer | Whether the sounds are muted or not. (0=muted, 1=unmuted) |
4D3E34 | Integer | Whether the music is muted or not. (0=muted, 1=unmuted) |
4F8E10 | HINSTANCE | JJ2’s instance handle. |
4F8E1C | HWND | JJ2’s window handle. |
4F8E44 | HMENU | JJ2’s menu handle. |
514DAC | Integer | Level width in tiles. |
518E0C | Integer | Level height in tiles. |
52A522 | Boolean | Game loop running or not. |
58A5A0 | Integer | How long the gameloop has been running, in gameticks. |
547313 | String | Current level name. |
547373 | String | The filename of the next level. |
5473b3 | String | Level music. |
57AA40 | Integer | No wallclipping (jjnowall effect, 1=True, 0=False). |
58A641 | String | Chatstring |
5A4740 | Integer | Score for the blue team. |
5A4744 | Integer | Score for the red team. |
5A4B64 | Integer | simulates F9 |
5A4B68 | Integer | Game mode (0=Singleplayer, 1=Cooperative, 2=Battle, 3=Race, 4=Treasure, 5=CTF). |
5A4D00 | Integer | Number of players in game from your jj2-client. |
5C6900 | Integer | Whether you talk in teamchat or not. (0=public chat, 1=blue chat, 2=red chat) |
5D012C | Integer | Whether the “chatbox” is open or not. (1/0) after that it functions as chat string length counter, meaning that if the chatstring is one character, then the value will be 2. |
5D01D0 | Integer | Maximal score. |
5D0204 | String | Current level filename. |
5DB7F0 | Integer | Change to 6 to restart level. |
5F7CA0 | Integer | Height, camera-view. |
5F7D40 | Integer | Width, camera-view. |
5FB188 | String | Server name. |
5FB1C8 | String | The server password. |
5FCCE9 | Integer | Maximal amount of allowed players in server. |
5FCCEA | Boolean | Private server (1=True, 0=False). |
608A00 | Boolean | Running or not |
The only difference with player memory addresses for 1.23 is the actual address. Add 0×23620 to the 1.23 address to get the 1.24 address. For example, the first player’s X-position in 1.24 is 0×5C850C.
Address | Type | Description |
---|---|---|
4C6928 | Boolean | Playernames visible or not (F8). |
4C9bE8 | String | JJ2 version. |
4F036C | Integer | Your playernumber (zero-based). |
4F33F0 | HINSTANCE | JJ2’s instance handle. |
4F33FC | HWND | JJ2’s window handle. |
4F341C | HMENU | JJ2’s menu handle. |
54D573 | String | Next level filename. |
54D5B3 | String | Current level music. |
59E060 | Boolean | Jjnowall. |
5ADBC0 | Integer | How long the game loop has been running (gameticks). |
5ADC61 | String | Chatstring. |
5C7D60 | Integer | Blue score. |
5C7D64 | Integer | Red score. |
5C8184 | Integer | Simulates F9. |
5C8188 | Integer | Game mode. |
5C8320 | Integer | Number of players in game from jj2 client. |
5C85B4 | Boolean | Unable to do another double jump or not? |
5E9F20 | Integer | Whether you talk in teamchat or not. (0=public chat, 1=blue chat, 2=red chat) |
5F374C | Integer | Whether the “chatbox” is open or not. (1/0) after that it functions as chat string length counter, meaning that if the chatstring is one character, then the value will be 2. |
5F37F0 | Integer | Max score. |
5F3824 | String | Current level filename. |
5FEE10 | Integer | Set to 6 to restart level. |
61E7E8 | String | Server password. |
620309 | Integer | Max players (1-32) |
62030A | Boolean | Private server (1=True, 0=False). |
62C020 | Boolean | Running? |
Jazz2Online © 1999-INFINITY (Site Credits). We have a Privacy Policy. Jazz Jackrabbit, Jazz Jackrabbit 2, Jazz Jackrabbit Advance and all related trademarks and media are ™ and © Epic Games. Lori Jackrabbit is © Dean Dodrill. J2O development powered by Loops of Fury and Chemical Beats.
Eat your lima beans, Johnny.