snes9xgit / snes9x

Snes9x - Portable Super Nintendo Entertainment System (TM) emulator
http://www.snes9x.com
Other
2.65k stars 460 forks source link

About SNES9x and Super Nintendo CD-ROM Emulation... #125

Closed John-Enigma closed 8 years ago

John-Enigma commented 8 years ago

Has anybody thought on adding Nintendo Play Station/Super Nintendo CD-ROM/SuperDisc (the prototype one) emulation to SNES9x?

I ask this because NoCash's SNES emulator seems to be the one that only emulator that supports Super Nintendo CD-ROM emulation, and Byuu has thought on adding it to Higan in the near future.

Idk if this was asked before, or if SNES9x has Satellaview support (to play those BS SNES games, like the BS Zelda no Densetsu series, etc).

bearoso commented 8 years ago

SNES-CD is a novelty. I don't think there's any point to putting the effort to get it working. The most anyone is going to do is try it out really quick to see it works, then forget about it.

And no, I don't think the one homebrew game that "uses" it is worth it.

jcdenton2k commented 8 years ago

Satellaview support likely isn't in the cards. You can play the BS SNES games by acquiring the specific ROMs (good luck with that) and then patching them with the 'fix' patches that remove the time limit and let the games run fully 'offline' in SNES9X or other SNES emulators.

SNES-CD is something you would want the original hardware for since it is one of those homebrew-only type of platforms since it was never officially-released.

LuigiBlood commented 8 years ago

Satellaview games at some point just requires a signal to work, some of them just cannot boot until a signal is present. I did support for that in my own fork of snes9x.

John-Enigma commented 8 years ago

@Luigiblood Cool. Thanks for telling me one of the technical reasons for playing Satellaview games. And like @jcdenton2k said above, you need certain files, and "fix" patches to play the BS ROM's.

Btw @Luigiblood, have you managed to fork your Satellaview-compatible to this Git?

LuigiBlood commented 8 years ago

No I don't think it's compatible. I'll try to change things later

jcdenton2k commented 8 years ago

@LuigiBlood I wasn't aware of your forks, thank you for contributing such valuable info. Learn something new every day!

If you can add in true Satellaview emulation then people would hopefully be able to emulate the original games/data without requiring special 'fix' patches in the first place. Great for archival and historical preservation.

LuigiBlood commented 8 years ago

I'll try to change the code to work on the current SNES9X Git and then do a pull request.

jcdenton2k commented 8 years ago

I noticed this in the config file:

[ROM] BS = FALSE # Broadcast Satellaview emulation Cheat = FALSE # true to allow enabled cheats to be applied Patch = FALSE # true to allow IPS/UPS patches to be applied ("soft patching")

Would changing that to 'TRUE' enable actual emulation? Is it already in the emulator itself? I don't have Satellaview data to check or I'd test it myself. I only have the patched versions which may produce unexpected behavior.

LuigiBlood commented 8 years ago

There's no actual Satellaview emulation in official SNES9X. There's a bit of it but it's really not accurate.

roflcopter777 commented 8 years ago

Would MSU-1 be near-impossible?

John-Enigma commented 8 years ago

See? These are features that would be nice if they were added to SNES9x:

  1. MSU-1 emulation
  2. Accurate Satellaview support
  3. SNES CD-ROM emulation (for future homebrew making)

The question is, will people bother on implementing these features?

LuigiBlood commented 8 years ago

I would get Satellaview support as soon as I manage to compile SNES9x to begin with...

jcdenton2k commented 8 years ago

@John-Enigma

The SNES CD-ROM emulation is likely never going to happen unless we can get someone to take apart an existing known prototype and provide detailed information about it. You might need to consider that perfect emulation of custom chips within the prototype might require permanently altering it in specific ways to properly analyze those chips (similar to what Dr. Decapitator did for SNES-specific enhancement chips many years ago).

As someone who's deep into the ROM hacking/modding and homebrew scene myself, I also don't see people making emulation-only content for the forseeable future.

If you can't play it on original hardware then you're condemning your work to obscurity for anyone who doesn't use a compatible emulator. And don't think ZSNES or higan will give a flying owl about adding it to their emulators.

Be happy for how we are light-years-ahead compared to the way things were before. I remember back in MY day we had to download and use special 'graphic packs' for games with the SDD-1 chip like Star Ocean and Far East of Eden Zero (and back when internet was still dial-up it took forever to download these).

MSU-1 emulation: http://forums.launchbox-app.com/topic/30087-snes-msu-1-emulation/

Aside from the nonexistant formatting of that glob of text, the main issue is that the MSU-1 is a custom homebrew chip created by one person for their own purposes exclusive to their emulator and one specific (expensive) flash kart.

The Satellaview support seems to be done according to LuigiBlood so it is a matter of porting the changes over to the existing codebase in a compatible format.

MSU-1 is not part of the original console or original console specs. It also requires exclusive ROMs patched in a specific way with the MSU-1 patch and a very specific soundtrack from specific creators. See where I'm going with this? A custom chip with custom patches for custom ROMs to enable custom music from specific music creators.

I've watched YouTube videos of people using 'that flash kart' with the MSU-1 in hardware to play these games and it only works as well as the music that is being used. A lot of this music isn't really composed from the ground up to be used in a video game but instead listened to standalone.

Also on a personal note, you just can't beat the SNES sound chip. Give me 8-bit or 16-bit music over this 'modern' orchestral stuff any day.

So TLDR: MSU 1 isn't likely to happen because it isn't an original SNES product. Satellaview was part of the original SNES and is mostly DONE just needs to be ported by LuigiBlood. SNES CD-ROM emulation is likely not to happen since the hardware was never officially released and even if it did the homebrew would be either minimal or nonexistant. There's no point in putting in all that work for no benefit. That's like asking N64 emulators to emulate the N64 Disk Drive or other emulators to emulate planned/abandoned add-ons.

roflcopter777 commented 8 years ago

And yet Byuu has the MSU-1 running on his emulator, Higan, and not just a flash cart, so it has to be feasible somehow. Actually, PJ64 was running the F-Zero X Expansion Kit ROM; people have dumped N64 DD ROMS and they do run on emulators too.

https://www.youtube.com/watch?v=aWR4S2uUGEM

shrug

bearoso commented 8 years ago

The SNES CD-ROM is a novelty and a lot of work for something no one will use, that's why it won't ever be added. MSU-1 and BS-X stuff, maybe.

LuigiBlood commented 8 years ago

SNES CD is emulated on NO$SNS.

MSU1 is I think something that needs to be emulated in SNES9X.

Satellaview needs to be emulated for better game support. Also, the 64DD was released. And any N64 emulator has to emulate it in my opinion, not a good argument at all.

LuigiBlood commented 8 years ago

@roflcopter777 I'm the one who ported the 64DD emulation code from MAME to Project64 :D

Also I can't seem to compile SNES9X properly on Windows. Only as a libretro core D: EDIT: Like as a Win32 EXE file it's actually crashing. Tried several things...

roflcopter777 commented 8 years ago

You're gonna have to ask @OV2 or @bearoso about that, I have no idea ><

OV2 commented 8 years ago

I can upload the zlib / libpng static libraries and sources in a pack, but the rest of the requirements are simply installers from ms or nvidia. Will try to upload it later today.

LuigiBlood commented 8 years ago

Well I have compiled zlib and libpng (though the folders didn't match what SNES9X expected though...), I didn't compile FMOD (disabled it as I don't need it), installed CG and DirectX SDK (August 2009).

EDIT: I think I got it to work with Unicode. I had a WChar problem. It seems to compile fine now.

jcdenton2k commented 8 years ago

If people want to add in features, there's always the opportunity of doing a pull request with the requisite code and discussing it there.

So I looked up NO$SNS and came to this: http://problemkaputt.de/sns.htm

No source code download. I don't know why people would bother with a closed-source SNES emulator.

I feel that the dev time would be better spent on improving this emulator and game accuracy. My wishlist would be some unified GUI for all the disparate settings and options currently spread over several menus.

Removing as many of those game-specific hacks as possible would be a great start. It can happen over time.

I don't feel that SNESCD or MSU1 or other diversions will be beneficial to emulation here or in the emulation scene overall.

What people seem to not realize is that the more features/support you put in, the larger the codebase gets and the more difficulty there is to maintain all of that.

The GNU/Linux philosophy tends to be 'for every task, a script for that' or insert 'program' instead of script depending on what you like. It means programs are generally built upon several different scripts and command-line tools that come with most distros. If you don't have them then they put them as 'required' dependencies and they're auto-installed and away you go.

There are pros and cons to each approach (monolithic and universal OR polylithic and diverse). I don't want to revert to a 'plugin' architecture like other emulators but it wouldn't hurt if certain things were segregated from the core.

That said, for the purposes of THIS emulator, there are already alternatives that segregate (libretro) so if I really need to then I can use that instead. As far as new features I hope that those proposing they be implemented are willing to do the actual coding needed to get it done and then submit a pull request.

LuigiBlood commented 8 years ago

To be honest SNES CD is not that impotant to emulate. However as soon as we find an actual prototype of a SNES CD game, that may change my mind. MSU1 is a bit more important though because MSU1 hacks are getting some popularity.

At least though I planned to update the bsx code, because this is really not good. New documentation has been done for it and would improve the Satellaview game compatibility.

jcdenton2k commented 8 years ago

Please feel free to submit code to implement MSU-1 and Satellaview compatibility. I look forward to seeing the pull requests :)

John-Enigma commented 8 years ago

^Then I guess is settled.

Thanks for the talk, everyone. I understand now.

CLOSING TIME

vico93 commented 3 months ago

I wonder, after all those years and new developments, i wonder if the attitude could change...