Notes:Workboy
This page contains notes for the game Workboy.
This article is a work in progress. ...Well, all the articles here are, in a way. But this one moreso, and the article may contain incomplete information and editor's notes. |
All the offsets, their ranges and values are written in hexadecimal, except for value ranges and byte lengths that are written in decimal instead for better readability.
Contents
ROM
In this section all the offsets refer to the cartridge ROM.
Where can be found?
It can be found inside the platinum.7z 2020 Nintendo leak at platinum.7z\dmg_sgb.7z\DMG\POOL\DMGWYE-0.781 and has a SHA-256 of 8C365C5BC213DC002EB28F016D6C7C546DCEB05B51E3A8BF5703E586DB5BC45E.
Some emulators may complain when trying to run it as they fail to detect the ROM type by assuming that .781 is the file extension and not recognizing it. To fix it simply append the .gb extension after it.
Title Screen
Offsets related to the introductory text displayed on the title screen can be found in the main article.
Saved Data
In this section all the offsets refer to SRAM. The variable named n mentioned into the sections has a lower bound of 0 and an upper bound of 255, both inclusive.
Language
The current language selected is stored at offset 0x01F9.
Value | Language |
---|---|
0x00 | English |
0x01 | German |
0x02 | French |
0x03 | Spanish |
0x04 | Italian |
Calculator
Its memory flag is stored at offset 0x0221: if its content is equal to 0x00 the memory is empty, otherwise there is a number stored in it. In normal circumstances the calculator uses 0x4D (ASCII "M" letter) to mark the memory as not empty and the corresponding character is displayed in the top-left of the calculator's screen.
The number is stored in SRAM at offsets 0x0222 - 0x022C as an ASCII string (maximum 10 characters long) including a trailing 0x00 value that acts as a string terminator.
Interestingly the routine that loads the stored number in RAM doesn't check if the string terminator falls in the offsets mentioned precedently, so if a string terminator cannot be found in that range SRAM offsets beyond 0x022C are read until a value of 0x00 is found, up to offset 0x1FFF.
Appointments
An appointment is 66 bytes long and the total count, from 0 to 255, can be found at offset 0x0231.
Data for the nth appointment can be found by incrementing the following offsets by 0x42 * n.
0x0233: Day, from 1 to 31 0x0234: Month, from 1 (January) to 12 (December) 0x0235: Years since 1900, from 0 (year 1900) to 255 (year 2155) 0x0236: Hour, from 0 to 23 0x0237: Minutes, from 0 to 59 0x0238: Alarm and Countdown settings, see table below 0x0239 - 0x0274: Text, 60 characters long and zero-padded until the end if necessary
Alarm and Countdown
Their relative data is stored in a single byte: the most significant nibble stores countdown data and the least significant one stores alarm data. Setting them to any other value causes glitched effects.
Value | Effect |
---|---|
0x0 | No countdown |
0x1 | 1 day |
0x2 | 2 days |
0x3 | 3 days |
0x4 | 4 days |
0x5 | 5 days |
0x6 | 6 days |
0x7 | 7 days |
0x8 | 8 days |
0x9 | 9 days |
Value | Effect |
---|---|
0x0 | No alarm |
0x1 | Beeper alarm |
0x2 | Birthday alarm |
0x3 | Christmas alarm |
0x4 | Priority alarm |
E.g., for an appointment with a countdown of 8 days and a Christmas alarm, the value would be 0x83.
Phone Book
A phone book entry is 140 bytes long and the total count, from 0 to 255, can be found at offset 0x2001.
Data for the nth phone book entry can be found by incrementing the following offsets by 0x8C * n:
0x2002 - 0x2079: Name and Address, 120 characters long and zero-padded until the end if necessary 0x207A - 0x208D: Telephone Number, 20 characters long and zero-padded until the end if necessary