VS Excitebike [solved]

Discuss emulation of the Nintendo Entertainment System and Famicom.

Moderator: Moderators

Post Reply
User avatar
Zepper
Formerly Fx3
Posts: 3262
Joined: Fri Nov 12, 2004 4:59 pm
Location: Brazil
Contact:

VS Excitebike [solved]

Post by Zepper »

In my emulator, the game freezes on startup, waiting for an NMI (jmp $85F4, same of PC register). If I press RESET or HARD RESET, the game works.

Any clue what I'm missing on my CPU/PPU startup?
Last edited by Zepper on Sun Jun 11, 2017 5:44 pm, edited 1 time in total.
lidnariq
Posts: 11429
Joined: Sun Apr 13, 2008 11:12 am

Re: VS Excitebike

Post by lidnariq »

It looks like Vs Excitebike explicitly chooses to go into that infinite loop if P2 start (i.e. "3 player" ?) is pressed on power-up:

Code: Select all

  lda $14                  
  ora $15                  
  and #$10                 
  beq $85F7                
  jmp $85F4                
User avatar
Zepper
Formerly Fx3
Posts: 3262
Joined: Fri Nov 12, 2004 4:59 pm
Location: Brazil
Contact:

Re: VS Excitebike

Post by Zepper »

I believe it's another game that relies on the startup contents of RAM. Filling up with zeroes won't boot, but will do if filled up with $FF.
Last edited by Zepper on Sun Jun 11, 2017 6:21 pm, edited 1 time in total.
lidnariq
Posts: 11429
Joined: Sun Apr 13, 2008 11:12 am

Re: VS Excitebike [solved]

Post by lidnariq »

Er.

The first 22 instructions in the reset vector unambiguously include a loop that clears all internal RAM:

Code: Select all

_Reset  $85AF  78:          sei 
        $85B0  D8:          cld 
        $85B1  A9 00:       lda #$00
        $85B3  8D 00 20:    sta $2000
        $85B6  A2 FF:       ldx #$FF
        $85B8  9A:          txs 
-       $85B9  AD 02 20:    lda $2002
        $85BC  29 80:       and #$80
        $85BE  F0 F9:       beq -               ; $85B9
-       $85C0  AD 02 20:    lda $2002
        $85C3  29 80:       and #$80
        $85C5  F0 F9:       beq -               ; $85C0
        $85C7  A0 07:       ldy #$07 ; loop that clears memory starts here, with address 0x700
        $85C9  84 01:       sty $01
        $85CB  A0 00:       ldy #$00
        $85CD  84 00:       sty $00
        $85CF  98:          tya 
-       $85D0  91 00:       sta ($00),y
        $85D2  88:          dey ; counting down, so 700 7FF 7FE &c
        $85D3  D0 FB:       bne -               ; $85D0
        $85D5  C6 01:       dec $01 ; counting down, so 700 600 500 &c
        $85D7  10 F7:       bpl -               ; $85D0
User avatar
Zepper
Formerly Fx3
Posts: 3262
Joined: Fri Nov 12, 2004 4:59 pm
Location: Brazil
Contact:

Re: VS Excitebike [solved]

Post by Zepper »

Odd. I don't know what to say... it should work, but it isn't.

EDIT: argh, you're right. What could be avoiding its proper boot?
EDIT2: it seems that holding START affects the boot, since I press "ENTER" mapped to START.
Post Reply