{"action":"created","issue":{"url":"https://api.github.com/repos/project64/project64/issues/773","labels_url":"https://api.github.com/repos/project64/project64/issues/773/labels{/name}","comments_url":"https://api.github.com/repos/project64/project64/issues/773/comments","events_url":"https://api.github.com/repos/project64/project64/issues/773/events","html_url":"https://github.com/project64/project64/issues/773","id":118249161,"number":773,"title":"Massive Project64 audit","user":{"login":"vgturtle127","id":3183676,"avatar_url":"https://avatars.githubusercontent.com/u/3183676?v=3","gravatar_id":"","url":"https://api.github.com/users/vgturtle127","html_url":"https://github.com/vgturtle127","followers_url":"https://api.github.com/users/vgturtle127/followers","following_url":"https://api.github.com/users/vgturtle127/following{/other_user}","gists_url":"https://api.github.com/users/vgturtle127/gists{/gist_id}","starred_url":"https://api.github.com/users/vgturtle127/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vgturtle127/subscriptions","organizations_url":"https://api.github.com/users/vgturtle127/orgs","repos_url":"https://api.github.com/users/vgturtle127/repos","events_url":"https://api.github.com/users/vgturtle127/events{/privacy}","received_events_url":"https://api.github.com/users/vgturtle127/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":138,"created_at":"2015-11-22T07:24:47Z","updated_at":"2015-12-03T03:24:35Z","closed_at":null,"body":"# Project64 audit and extensive testing\r\n\r\n## Introduction\r\n\r\nHey guys! So I was thinking about how to help with Project64 and also the various other N64 emulators and plugins, and it hit me that I should just test everything! Easy, I know! :scream: \r\n\r\nHowever, this way we know what the issues are so we can fix them. After that, we will be much closer to our goal of more complete emulation. In theory, at least. _shrug_\r\n\r\nThe only eligible emulators and plugins should be open-source, otherwise we can't improve them, or do anything with them at all for that matter. That said, I may make exceptions for certain plugins if there is enough demand or cause for it (such as Jabo's plugins). I will also list depreciated, old, or obscure plugins, and we can discuss whether or not we will test them or not.\r\n\r\nBasically, I want to audit Project64 along with every possible combination of plugins. While I am doing this I will document any bugs, inaccurate behaviors, etc. I will then generate reports based on all my findings, and report all issues to the authors and send pull requests/create issues as well (if applicable).\r\n\r\nSo initially, I will be testing Projec64 32-bit and 64-bit. If Project64 2.3 comes out soon, I will test that version, if not I will test 2.2 and the latest compiled from source.\r\n\r\nAs for what plugins I am going to test, I will make a list below of all known plugins. This should be an exhaustive list, but if you know of any other plugins or know information that has a question mark next to it, I would appreciate the information! If it has a question mark, I either don't know and need help finding information, or it is up for discussion. As usual, I am open for feedback or discussion.\r\n\r\n### First, my computer specifications:\r\n\r\nIntel Pentium G2030 running at 3.0GHz (64-bit dual core with 2 threads)\r\n16GB DDR3 running at stock speed\r\nNvidia EVGA GTX 750 Ti Superclocked (2GB GDDR5)\r\nSamsung 850 EVO 120GB\r\nSeagate 1TB 7200RPM hard drive (Windows isn't recognizing it currently)\r\n\r\nOperating system:\r\n64-bit Windows 10 Pro\r\n\r\n## Game notes\r\n\r\n### List of problematic games that will receive extensive testing:\r\n\r\n* Battlezone\r\n* Vigilante series\r\n* Body Harvest\r\n* Top Gear\r\n* ECW/WCW/WWF games (they use the same engine)\r\n* Taz Express\r\n* Mia Hamm (and it's incarnates) (Mostly FIFA games)\r\n* Gauntlet Legends\r\n* F-1 Racing series\r\n* Star Wars series\r\n* Knife Edge\r\n* World Driver Championship\r\n* Stunt Racer 64\r\n* Mortal Kombat 4\r\n* Mystical Ninja Starring Goemon\r\n* SD Hiryuu no Ken Densetsu\r\n* Turok series\r\n* Last Legion\r\n* Dark Rift\r\n* Bottom of the 9th\r\n* Indiana Jones And The Infernal Machine\r\n* Midway's Greatest Arcade Hits\r\n* Namco Museum 64\r\n* Winback (NTSC) or Operation Winback (PAL) (curse you, you grey square!)\r\n\r\n## Nintendo 64 Disk Drive\r\n\r\nSomething fairly new to Nintendo 64 emulation is support for the Nintendo 64 Disk Drive. In case you don't know what that is, you can read more about it here: https://en.wikipedia.org/wiki/64DD\r\n\r\nAnyway, I want to make it clear that N64DD games will be a challenge to test, because most of them have \"disk hot-swapping\" or require unemulated peripherals or functionality. On top of that, two of the released software titles are Mario Artist Communication Kit and the Randnet disk. These would both require the emulation of Randnet, which was an online service used to download new content, upload content, and much more. I will give them as much testing as I possibly can, of course.\r\n\r\nZoinkitty has told me the Randnet disk is basically useless without modem cart emulation. I will still do as much testing as I can do.\r\n\r\nThat said, emulation of the somewhat \"standard\" games (namely SimCity 64, Japan Pro Golf 64, and F-Zero Expansion Pack) should be somewhat similar to the N64 cartridge games they are similar to, or should run smoothly since they don't require special hardware or disk changing.\r\n\r\n## Other odd games\r\n\r\nThere are some games that will receive only limited testing, namely Mario No Photopie and Hey You, Pikachu!\r\n\r\nHey You, Pikachu! requires the N64 microphone. Work has been done on this, and I will be taking a look at it eventually. The game ROM runs fine, though.\r\n\r\nMario No Photopi requires a SmartMedia memory card to be inserted into the game for it to load some images. There are two SmartMedia slots on the Mario No Photopi cartridge. These can be dumped easily using USB SmartMedia card readers, but they don't have any game data on them, just images you put on them to use in the game. So, there is no real reason to dump them, and if anything, you should put stuff onto them and play the game! Basically we need to emulate inserting a SmartMedia card and having images on them. This could be done similarly to having an emulator load a folder as a SmartMedia card. I'm not sure if the game requires any one specific type of image/picture format or not, since I don't have the SmartMedia card or game to test it. On a positive note, the game runs pretty well even without all of that!\r\n\r\nObviously, more popular games will be tested fairly extensively as well, since most people want to play popular games (they're called popular for a reason), but also because most of those games pushed the N64 to the limit. Often times, these are some of the hardest games to run smoothly. This may seem like these are the games that are tested the most often, and therefore less important to test them. This is a misconception, since most of the time limited testing is done on the first few levels of a game. Thorough tests will confirm or deny that these games are in fact emulated accurately. Some examples of these games being:\r\n\r\n* Banjo-Kazooie\r\n* Banjo-Tooie\r\n* Conker's Bad Fur Day\r\n* Diddy Kong Racing\r\n* Donkey Kong 64\r\n* Dr. Mario 64\r\n* F-Zero X\r\n* Glover\r\n* GoldenEye 007\r\n* Kirby 64: The Crystal Shards\r\n* The Legend Of Zelda: Ocarina Of Time\r\n* The Legend Of Zelda: Majora's Mask\r\n* Mario Golf\r\n* Mario Kart 64\r\n* Mario Party 1-3\r\n* Mario Tennis\r\n* Paper Mario\r\n* Perfect Dark\r\n* Star Fox 64\r\n* Super Mario 64\r\n* Super Smash Bros.\r\n* Wave Race 64\r\n* Yoshi's Story\r\n\r\nJust to name a few.\r\n\r\nAnd last, but certainly not least, everybody's favorite game of all time! SUPERMAN 64! :trollface: \r\n\r\nThe prototype is way better than the actual game, by the way. Runs better, ironically enough.\r\n\r\n# Plugins\r\n\r\n## Graphics plugins\r\n\r\nMarked plugins are plugins I am considering testing.\r\n\r\n* [x] Jabo's Direct3D 1.7+ [closed-source] {x86}\r\n* [x] Jabo's Direct3D 1.6.1 [closed-source] {x86}\r\n* [x] Glide64 (Final) [open-source] {x86}\r\n* [x] GlideN64 (1.2 and latest compiled from source) [open-source] {x86}\r\n* [x] Shunyuan's \"SoftGraphic\" (version 1.5) [open-source] {x86}\r\n* [x] Rice video (latest stable version and latest compiled from source) [open-source] {x86/x64}\r\n* [ ] Lemmy's graphics plugin (version?) [open-source] {x86}\r\n* [x] Z64/Z64GL r17 [open-source] {x86}\r\n* [x] Angrylion's Z64 r17 build [open-source] {x86}\r\n* [x] purplemarshmallow's Z64 build [open-source] {x86}\r\n* [x] Angrylion's RDP plugin (r98) [open-source] {x86}\r\n* [x] HatCat's/Iconoclast's fork of Angrylion's RDP plugin (June 13th, 2015 build) [open-source] {x86/x64}\r\n* [x] Haxatax build of Angrylion's RDP plugin (version?) [open-source] {x86}\r\n* [x] cxd4's fork of Angrylion's RDP plugin (version?) [open-source] {x86}\r\n* [ ] glN64 (versions?) [open-source] {x86}\r\n* [ ] Direct64 (version?) [closed-source] {x86}\r\n* [ ] 1964 OpenGL plugin (version?) [closed-source] {x86}\r\n* [ ] Zilmar's CFB plugin (version 1.0) [open-source] {x86}\r\n* [ ] RCP's Direct3D plugin (version?) [closed-source] {x86}\r\n* [ ] Arachnoid plugin (version 1.0) [open-source] {x86}\r\n* [ ] TR64 Direct3D (version?) [open-source?] {x86}\r\n* [ ] Icepir8's TR64 OpenGL (version?) [closed-source] {x86}\r\n* [ ] Neon-Glide (version?) [open-source] {x86}\r\n* [ ] Neon-Rice (version?) [open-source] {x86}\r\n* [ ] Rice-GLES (version? [open-source] {x86}\r\n* [ ] More?\r\n\r\n## Audio plugins\r\n\r\n* [x] Jabo's DirectSound plugin (requires an RSP plugin) (version?) [closed-source] {x86}\r\n* [x] Azimer's HLE audio plugin (versions 0.56 WIP 1/2, 0.60 WIP 2, 0.70 WIP 4, latest from source) [open-source] {x86/x64}\r\n* [x] 1964 audio (latest stable and compiled from source) [open-source] {x86}\r\n* [x] Shunyuan's HLE audio plugin (version 1.8.2u1) [open-source] {x86}\r\n* [ ] Zilmar's basic audio plugin (version 1.0) [open-source] {x86}\r\n* [ ] Zilmar's no sound/null sound plugin (version 1.0) [open-source] {x86}\r\n* [ ] TR64 sound plugin (version?) (closed-source) {x86}\r\n* [ ] More?\r\n\r\n## Input plugins\r\n\r\n* [x] Jabo's DirectInput (version?) [closed-source] {x86}\r\n* [ ] Zilmar's basic keyboard plugin (version 1.0) [open-source] {x86}\r\n* [x] N-Rage (latest stable and compiled from source?) [open-source] {x86/x64}\r\n* [x] Pokopom (latest stable and compiled from source?) [open-source] {x86}\r\n* [ ] DarkMan's DirectInput plugin (version?) [open-source] {x86}\r\n* [ ] Def's DirectInput plugin (version?) [open-source] {x86}\r\n* [ ] NooTe's DirectInput plugin (version?) [open-source] {x86}\r\n* [ ] TR64 input plugin (version?) [closed-source] {x86}\r\n* [ ] Blight's input plugin (version?) [open-source] {x86}\r\n* [ ] Billard's input plugin (version?) [closed-source] {x86}\r\n* [ ] More?\r\n\r\n## RSP plugins\r\n\r\n* [x] Zilmar's RSP (1.7) [open-source] {x86}\r\n* [x] Mupen64 HLE RSP (0.5.1) [open-source] {x86}\r\n* [x] Z64 plugins (Ziggy-z64RSP, Ziggy-PJ64, Z64-Angrylion) (versions?) [open-source] {x86}\r\n* [x] HatCat's/Iconoclast's RSP interpreter (version pr6) [open-source] {x86}\r\n* [x] Weinerschnitzel's fork of Bsmile's RSP plugin (version?) [open-source] {x86}\r\n* [ ] More?\r\n\r\nHave suggestions? Comments? Concerns? Corrections? More information? Do you have source or binaries for plugins listed or otherwise that are not easy to find or not released yet? Please get in touch!\r\n\r\n:+1: :smiley: "},"comment":{"url":"https://api.github.com/repos/project64/project64/issues/comments/161504963","html_url":"https://github.com/project64/project64/issues/773#issuecomment-161504963","issue_url":"https://api.github.com/repos/project64/project64/issues/773","id":161504963,"user":{"login":"vgturtle127","id":3183676,"avatar_url":"https://avatars.githubusercontent.com/u/3183676?v=3","gravatar_id":"","url":"https://api.github.com/users/vgturtle127","html_url":"https://github.com/vgturtle127","followers_url":"https://api.github.com/users/vgturtle127/followers","following_url":"https://api.github.com/users/vgturtle127/following{/other_user}","gists_url":"https://api.github.com/users/vgturtle127/gists{/gist_id}","starred_url":"https://api.github.com/users/vgturtle127/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vgturtle127/subscriptions","organizations_url":"https://api.github.com/users/vgturtle127/orgs","repos_url":"https://api.github.com/users/vgturtle127/repos","events_url":"https://api.github.com/users/vgturtle127/events{/privacy}","received_events_url":"https://api.github.com/users/vgturtle127/received_events","type":"User","site_admin":false},"created_at":"2015-12-03T03:24:35Z","updated_at":"2015-12-03T03:24:35Z","body":"@cxd4 No, he said you guys weren't a team, and that he didn't know about anything else that was going on besides the work he was doing.\r\n\r\nAnd to be fair, I had no reason to think any different. Completely different usernames that had nothing to do with each other as far as I could tell. :blush: \r\n\r\nMaybe I missed something? Did everybody else know this the whole time?"}}