Different operation systems (Unix vs. Windows) use different line ending types.
It can easily happen that users from different systems edit files and replace
all line endings of a file with the system specific version. This screws up
diffs and makes merges harder.
Git can normalize line endings for specific files and avoid this problem.
Binary files should be marked to avoid accidentally normalization.
Titles like Banjo Tooie are known to hang because the interrupt after the SI
read/write is delayed. But there are also titles which are known to have
problems when delay is enabled. Examples are
* Body Harvest
* City Tour Grandprix - Zennihon GT Senshuken
* Cruis'n USA
* GT 64 - Championship Edition
* Nightmare Creatures
* Ucchan Nanchan no Hono no Challenger - Denryuu Ira Ira Bou
Some ROMs require a different average cycles per instruction count than the
default one (2 per emulated instruction). This setting is necessary because
mupen64plus is not cycle accurate. A complete simulation of pipeline, cache,
bus and so on is necessary to get it perfectly without this workaround.
Known titles which require a CounterPerOp of 1 are
* 64 de Hakken!! Tamagotchi - Minna de Tamagotchi World
* 64 Oozumou
* A Bug's Life
* Airboarder 64
* Bass Hunter 64
* Bass Rush - ECOGEAR PowerWorm Championship
* Bassmasters 2000
* Biohazard 2
* Body Harvest
* California Speed
* Carmageddon 64
* Charlie Blast's Territory
* City Tour Grandprix - Zennihon GT Senshuken
* Destruction Derby 64
* Disney's Tarzan
* Donkey Kong 64
* Duck Dodgers Starring Daffy Duck
* Duke Nukem - ZER0 H0UR
* Excitebike 64
* Fighting Force 64
* Flying Dragon
* Fushigi no Dungeon - Fuurai no Shiren 2 - Oni Shuurai! Shiren Jou!
* GT 64 - Championship Edition
* Hamster Monogatari 64
* Harvest Moon 64
* Hercules - The Legendary Journeys
* Hexen
* Hiryuu no Ken Twin
* In-Fisherman Bass Hunter 64
* International Superstar Soccer 64
* Itoi Shigesato no Bass Tsuri No. 1 Kettei Ban!
* Jikkyou G1 Stable
* Jikkyou World Soccer 3
* Madden NFL 2000
* Madden NFL 2001
* Madden NFL 2002
* Madden NFL 99
* Mario Party
* Mario Party 2
* Mario Party 3
* Mario Story
* Monopoly
* Mystical Ninja 2 Starring Goemon
* NBA In the Zone '99
* NBA Showtime - NBA on NBC
* Nightmare Creatures
* Nintama Rantarou 64 Game Gallery
* Nuclear Strike 64
* Nushi Duri 64
* Nushi Duri 64 - Shiokaze ni Notte
* Paper Mario
* Pro Mahjong Kiwame 64
* Pro Mahjong Tsuwamono 64 - Jansou Battle ni Chousen
* Quake II
* Razor Freestyle Scooter
* Ready 2 Rumble Boxing Round 2
* Resident Evil 2
* Roadsters Trophy
* Rush 2 - Extreme Racing USA
* San Francisco Rush 2049
* Shadow Man
* Tigger's Honey Hunt
* Toy Story 2
* Triple Play 2000
* Ucchan Nanchan no Hono no Challenger - Denryuu Ira Ira Bou
* Vigilante 8
* Vigilante 8 - 2nd Offence
* Virtual Pool 64
* War Gods
* WCW-nWo Revenge
* Wipeout 64
* HardCoded by Iceage
* Spacer by Memir (POM '99)
Known titles which require a CounterPerOp of 3 are
* BattleTanx
* BattleTanx - Global Assault
* Beetle Adventure Racing!
* Disney's Donald Duck - Goin' Quackers
* Donald Duck - Quack Attack
* HSV Adventure Racing
* Jikkyou Powerful Pro Yakyuu Basic Ban 2001
* LEGO Racers
* Monster Truck Madness 64
* Pilotwings 64
* Road Rash 64
* Wave Race 64 - Shindou Edition
* WCW Nitro
* Wetrix
Mupen64plus contains built-in cheats for Ocarina of Time, which activates the
essential subscreen delay fix. However, the built-in code for Master Quest
only works for the (E) version of Master Quest, and not the (U) version. The
file also does not include the (U) (GC) version of Ocarina of Time. Master
Quest and the GC versions of Ocarina of Time also need the End Credits Fix,
otherwise these games will crash when the credits are displayed.
Issue pinpointed by xperia64 and discussed in greater length here:
http://www.paulscode.com/forum/index.php?topic=1199.msg11751#msg11751
This may be just a band-aid to a deeper issue. Was discovered in Android while
trying to reload save states for Perfect Dark and Goldeneye from the latest
master revision of mupen64plus-ae. Recent changes to mupen64plus-ae have elim-
inated the blanket call to System.exit() it was using previously, which may have
been masking this issue before now. AE is also different from the upstream PC
version because it loads ui-console dynamically and calls main as a subroutine
of a larger multi-threaded android process (rather than ui-console being an
entry point to a new process). Not sure of all the ramifications, or if this is
even the correct fix, but it does fix the problem in AE.
The *.d depends files for make just list the files used when building an
object file. Removing a file listed in such a dependency file causes make to
search for a way to recreate it. This usually cannot work because these files
aren't autogenerated.
The gcc option -MP can be used to generate empty rule for these files. Removing
a file in a dependency list will then execute this empty rule and continue with
the execution of the creation of the object file. This compilation process will
then automatically correct the dependency file.
SDL 2.0 cannot store unicode anymore. Pre-2.0 versions provided this
field but it was removed right before the 2.0 release. Still using it
makes the compile fail.
The IDs for SDL scancodes don't start from SDL_SCANCODE_0 and end at
SDL_SCANCODE_9. Therefore, SDL_SCANCODE_9 is bigger than SDL_SCANCODE_0 (which
violates a precondition of the key check) and this makes it impossible to
select a saveslot using the numbers on the keyboard.
Using a special (order independent) function which translates to the slot ids
avoids this problem and can still be optimized to a simple range check +
calculation by the compiler.
The implementation of the SI regiser DMA busy bit caused regressions in games
like Mischief Makers (no gamepad input is detected by the game). The only known
benefit seems to be the reduced message spam about duplicated interrupts.
The message spam caused by some ROMS can be tolerated until the cause of the
regression is better understood.
This reverts 734b67b8ff647cc355b5f6b781799c42e75e81ea ("Implement SI register
DMA busy bit")
It is easier for a user to keep the old SDL1.2 values for the keys in the
config instead of converting them by hand. This is extreme important when the
default (automatic) config is used.
The joysticks in SDL2 use reference counting and return just a new reference
when trying to reopen a joystick. SDL_JoystickOpened is not needed in SDL2.
Only the lower 8 bits are checked by the country code to system type check to
decide whether a PAL or NTSC system should be emulated. 8707bea8b73c
("1. Update msvc11 project file to visual studio 2012 (msvc11)") changed the type to
be checked to 16 bit and forgot to mask the upper 8 bits out when doing the
system check.