If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Notes:Workboy

From The Cutting Room Floor
Jump to navigation Jump to search

This page contains notes for the game Workboy.

This cactus is UNDER CONSTRUCTION
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.

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.

Language
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.

Most significant nibble (countdown)
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
Least significant nibble (alarm)
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