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

Notes:Putt-Putt & Pep's Dog on a Stick

From The Cutting Room Floor
Jump to navigation Jump to search

This page contains notes for the game Putt-Putt & Pep's Dog on a Stick.

Unused Credits Restoration

Putting the hidden credits back together takes a little work. The main issues are the missing room palette and the lack of code to start the sequence.

The original room palette for the unused graphics was overwritten, but luckily, the animation data itself contains the proper palette. Overwriting the 768 bytes at 475476 with the 768 bytes at 4E98BE will fix the developer graphics. The scrolling credits text uses a slightly different palette, but the only change necessary is to set 4754BE to 96 4A 69.

Hacking the game to run the sequence is a bit trickier. Script 200 plays the developer animations, while script 202 runs the credits roll. To start the sequence as apparently intended, room 4's ENCD needs to be modified so that when the room is entered, the game will draw the unused placeholder background and trigger the two scripts.

Fitting the code in requires a few extra bytes. Fortunately, the sequence causes the game to exit when it finishes, so we can sacrifice the room's EXCD to expand the ENCD. Set 475814 to 0C to disable the EXCD and 475813 to 60 to resize it. Now delete the 5 bytes at 475815, insert 5 bytes of 0C before what is now offset 475832, and set 47581C to 4B to expand the ENCD.

Now we just need the code to insert, which is:

00 C8:		pushByte(0xC8)		; set script # to 200, dev animations
00 00:		pushByte(0x00)		; set script flags
5E 01:		runScript()		; start playing animations
00 CA:		pushByte(0xCA)		; set script # to 202, credits roll
00 00:		pushByte(0x00)		; set script flags
5E 01:		runScript()		; start credits
01 06 01:	pushWord(0x106)		; set AWIZ background resource number
					; to placeholder background
00 00:		pushByte(0x00)		; set bg x position
00 00:		pushByte(0x00)		; set bg y position
00 00:		pushByte(0x00)		; set drawing flags
CE:		drawWizImage()		; draw background
65:		stopObjectCode()	; end script

After encryption, this becomes

69 A1 69 69 37 68 69 A3 69 69 37 68 68 6F 68 69 69 69 69 69 69 A7 0C

which goes over the existing code at 47581D.

The final issue is that the new background expects a slightly different palette. The only difference is at 4755F6, which needs to be changed to 69 69 69.

Going to room 4 should now run the restored sequence. Note that this hack overwrites the code to start the credits music, so whatever was playing when the room was entered will play instead.