n64dev / cen64

Cycle-Accurate Nintendo 64 Emulator
BSD 3-Clause "New" or "Revised" License
801 stars 71 forks source link

Donkey Kong 64 no longer boots #209

Open Zapeth opened 2 years ago

Zapeth commented 2 years ago

Boot logos are displayed (N64/Rare/Dolby), but it just shows a black screen afterwards (no rap cutscene), tested with windows builds of d6b5b043956af205d5f6d28eb321ca796adfa021 and 3f865dcedf54384a06a7a2093bed740ad593d5b3

It does boot with an older build though (an exe from 2017 that I had lying around, probably tag v0.3 but dont know for sure).

I tried bisecting it but for some reason I cant build with older commits (a bunch of multiple definition of 'bus'; controller.c.obj linker errors).

Curiously I'm having the same issue in the game with a custom mupen64plus configuration right now (I had it working there with an older configuration/build as well), though its pretty difficult to pinpoint the origin due to the number of possible culprits.

sp1187 commented 2 years ago

The multiple definition of 'bus' linking error is due to newer compilers (GCC 10 and forward) being more strict when multiple definitions of global variables exist, this can be disabled by adding -fcommon to CFLAGS if you wish to bisect further.

Zapeth commented 2 years ago

Thanks, that solved the compilation issue. Bisect seems to point to 9c5c5bb1fbf8aa3afa5eb203d69daf42cabd944a being the first bad commit.

This is my stdout:

Using NTSC-U PIFROM
Detected cart: NDO[EJP] - Donkey Kong 64
Warning: cart saves to 16kbit EEPROM, but none specified (see -eep16k)

Adding -eep16k eep16k.bin to the parameters gets rid of the warning but the issue persists.