PowerPAK, Games that don't register input

Discuss hardware-related topics, such as development cartridges, CopyNES, PowerPak, EPROMs, or whatever.

Moderators: B00daW, Moderators

User avatar
MottZilla
Posts: 2832
Joined: Wed Dec 06, 2006 8:18 pm

PowerPAK, Games that don't register input

Post by MottZilla » Wed Nov 14, 2007 3:56 pm

I've now run into 2 games that both strangely don't register any input at all. They are Paperboy (U) and Dirty Harry (U). Has anyone else tested these games? For my they totally ignore controller input. I don't understand why.

tepples
Posts: 22049
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples » Wed Nov 14, 2007 5:43 pm

Ordinarily, only the least significant bit is guaranteed to be valid on an NES. Still, some games expect $41 and exactly $41 on the control register, where the three upper bits come from data bus capacitance from the LDA $4016 instruction. Perhaps the different capacitance characteristic of the PowerPak ROMs might have something to do with it.

User avatar
kyuusaku
Posts: 1665
Joined: Mon Sep 27, 2004 2:13 pm

Post by kyuusaku » Wed Nov 14, 2007 5:55 pm

Right, the PowerPak eats bus capacitance with the required pull ups on the data lines. Don't fear though, Powerpak mappers should be able to simulate the bus capacitance, they just don't yet. This is the same reason why lots of FC games are broken, they expect open bus in the SRAM area.
Last edited by kyuusaku on Wed Nov 14, 2007 10:45 pm, edited 2 times in total.

User avatar
MottZilla
Posts: 2832
Joined: Wed Dec 06, 2006 8:18 pm

Post by MottZilla » Wed Nov 14, 2007 6:36 pm

You're awesome man. I took paperboy, relocated the input subroutine, and then modified it and now it works perfectly. It did indeed expect exactly $41. I changed it by just adding a AND #$01 and changing it to CMP #$01 from CMP #$41.

Shame that I need a hack for it to work but atleast it works.

Edit: I just did the same for Dirty Harry and it works now too.

ccovell
Posts: 1015
Joined: Sun Mar 19, 2006 9:44 pm
Location: Japan
Contact:

Post by ccovell » Wed Nov 14, 2007 8:17 pm

Many US-made games also ignore controllers connected through the expansion/joystick port on the Famicom. :?

User avatar
Lloyd Gordon
Posts: 150
Joined: Mon Nov 07, 2005 11:32 am
Location: Toronto
Contact:

Post by Lloyd Gordon » Wed Nov 14, 2007 9:12 pm

Dirty Harry doesn't register input but Paperboy 1 & 2 do with latest BIOS & mappers.

User avatar
kevtris
Posts: 504
Joined: Sat Oct 29, 2005 2:09 am
Location: Indianapolis
Contact:

Post by kevtris » Thu Nov 15, 2007 1:30 am

MottZilla wrote:You're awesome man. I took paperboy, relocated the input subroutine, and then modified it and now it works perfectly. It did indeed expect exactly $41. I changed it by just adding a AND #$01 and changing it to CMP #$01 from CMP #$41.

Shame that I need a hack for it to work but atleast it works.

Edit: I just did the same for Dirty Harry and it works now too.

You could do it a bit funner without relocation. Change the CMP #41h to an LSR A, NOP, and change the branch to one that checks carry. Another way would be to AND #01h instead of the CMP, and change the branch. Guess it's 6 of one, half-dozen of another :-)
/* this is a comment */

dvdmth
Posts: 354
Joined: Wed Mar 22, 2006 8:00 am

Post by dvdmth » Thu Nov 15, 2007 9:02 am

kevtris wrote:You could do it a bit funner without relocation. Change the CMP #41h to an LSR A, NOP, and change the branch to one that checks carry. Another way would be to AND #01h instead of the CMP, and change the branch. Guess it's 6 of one, half-dozen of another :-)
In case of Paperboy, the CMP is followed by an ROL instruction, so you can't use the latter method suggested. Disassembly:

Code: Select all

        lda $4016, y
        cmp #$41
        beq skip
        clc
skip:   rol <$00
"Last version was better," says Floyd. "More bugs. Bugs make game fun."

tepples
Posts: 22049
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples » Thu Nov 15, 2007 11:07 am

dvdmth wrote:In case of Paperboy, the CMP is followed by an ROL instruction, so you can't use the latter method suggested. Disassembly:

Code: Select all

        lda $4016, y
        cmp #$41
        beq skip
        clc
skip:   rol <$00
What is loaded into $00 and C beforehand? Would this work?

Code: Select all

        lda $4016, y
        lsr a
        nop
        nop
        nop
        nop
skip:   rol <$00

Great Hierophant
Posts: 769
Joined: Tue Nov 23, 2004 9:35 pm

Post by Great Hierophant » Fri Nov 13, 2009 10:11 am

Sorry for ressurecting an old post.

While there is a Paperboy ROM floating around with the fix incorporated (it registers input with the PowerPak), there is no corresponding ROM for Dirty Harry. Can anyone provide instructions on how to fix that ROM or an IPS patch so it will register input with the PowerPak. Something one can do in a hex editor?

tepples
Posts: 22049
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples » Fri Nov 13, 2009 7:47 pm

Play it in an emulator and log all instructions that read from $4016 and $4017, and someone can use your log to make a patch.

User avatar
thefox
Posts: 3141
Joined: Mon Jan 03, 2005 10:36 am
Location: Tampere, Finland
Contact:

Post by thefox » Sat Nov 14, 2009 5:57 am

Code: Select all

Captain Planet and The Planeteers (U) [!].nes

0x1FA66: B9 16 40 C9 41 F0 01 18 26 00
         ->       4A EA EA EA EA

Dirty Harry - The War Against Drugs (U) [!p].nes

0x3F76E: B9 16 40 C9 41 F0 01 18 26 00
         ->       4A EA EA EA EA

Great Hierophant
Posts: 769
Joined: Tue Nov 23, 2004 9:35 pm

Post by Great Hierophant » Sat Nov 14, 2009 7:51 am

Paperboy has the exact same string starting at 0x108. So does Infiltrator at 0x1F7F2, The Last Starfighter at 0x16E, Mad Max at 0x1F415 (except for the last number, which is 02). All these games are from Mindscape, so I checked all Mindscape games for this string and only found that these games contained it. I have never tried them in my PowerPak, I wonder if they will register input.

tepples
Posts: 22049
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples » Sat Nov 14, 2009 9:21 am

Mindscape published a few games for Tengen, whose developers had to reverse engineer the NES chipset and ended up mis-RE'ing the controller port. Have you looked for the string in other Tengen games?

Great Hierophant
Posts: 769
Joined: Tue Nov 23, 2004 9:35 pm

Post by Great Hierophant » Sat Nov 14, 2009 10:11 am

tepples wrote:Mindscape published a few games for Tengen, whose developers had to reverse engineer the NES chipset and ended up mis-RE'ing the controller port. Have you looked for the string in other Tengen games?
Tengen was a licensed developer before they became dissatisfied with Nintendo's policies and decided to forgo licensing. None of the above Mindscape games came from Tengen, and I have never had any problem playing Tengen's games on a PowerPak. Infiltrator, The Last Starfighter and Mad Max don't register input on the PowerPak either. Here's hoping the fix works!

Post Reply