supergnes legit or an unauthorized fork of snes9x
-
- Snes9x White Belt
- Posts: 5
- Joined: Sun Mar 18, 2012 2:21 am
supergnes legit or an unauthorized fork of snes9x
Hey all,
I was curious if the snes9x team could say whether supergnes https://play.google.com/store/apps/deta ... .supergnes is a official version of snes9x, or if it's an unauthorized fork of snes9x.
If unauthorized, it's particularly frustrating that the version linked to is $4--a lot of hard work ripped off.
Wouldn't be easy to get taken down from Google if so, too?
Thanks all.
I was curious if the snes9x team could say whether supergnes https://play.google.com/store/apps/deta ... .supergnes is a official version of snes9x, or if it's an unauthorized fork of snes9x.
If unauthorized, it's particularly frustrating that the version linked to is $4--a lot of hard work ripped off.
Wouldn't be easy to get taken down from Google if so, too?
Thanks all.
-
- Snes9x Orange Belt
- Posts: 222
- Joined: Sat Oct 17, 2009 4:18 am
Re: supergnes legit or an unauthorized fork of snes9x
I'm pretty sure it violates the license.
Lisa: "I hope you all know you're sponsoring a murderous pirate!"
Sponsor: "A pirate!!? Well, that's hardly the image we need for Long John Silvers!"
Sponsor: "A pirate!!? Well, that's hardly the image we need for Long John Silvers!"
- Camo_Yoshi
- Snes9x Purple belt
- Posts: 922
- Joined: Thu Nov 08, 2007 7:59 pm
Re: supergnes legit or an unauthorized fork of snes9x
Yes, this ABSOLUTELY violates the SNES9x license, which states that absolutely no commercial derivatives of the source are allowed.
Snes9x FAQs | Forum Rules
What operating system are you using? 32 or 64bit? Version of Snes9x? Is the text at the bottom of the window white when you load the game?
These suggestions are usually the solution to your issue!
What operating system are you using? 32 or 64bit? Version of Snes9x? Is the text at the bottom of the window white when you load the game?
These suggestions are usually the solution to your issue!
-
- Snes9x Orange Belt
- Posts: 222
- Joined: Sat Oct 17, 2009 4:18 am
Re: supergnes legit or an unauthorized fork of snes9x
How do you report wankers like this?
Lisa: "I hope you all know you're sponsoring a murderous pirate!"
Sponsor: "A pirate!!? Well, that's hardly the image we need for Long John Silvers!"
Sponsor: "A pirate!!? Well, that's hardly the image we need for Long John Silvers!"
- Camo_Yoshi
- Snes9x Purple belt
- Posts: 922
- Joined: Thu Nov 08, 2007 7:59 pm
Re: supergnes legit or an unauthorized fork of snes9x
Snes9x FAQs | Forum Rules
What operating system are you using? 32 or 64bit? Version of Snes9x? Is the text at the bottom of the window white when you load the game?
These suggestions are usually the solution to your issue!
What operating system are you using? 32 or 64bit? Version of Snes9x? Is the text at the bottom of the window white when you load the game?
These suggestions are usually the solution to your issue!
Re: supergnes legit or an unauthorized fork of snes9x
How do you know this is based on Snes9x? I don't see it referred to anywhere in its documentation.
-
- Snes9x White Belt
- Posts: 5
- Joined: Sun Mar 18, 2012 2:21 am
Re: supergnes legit or an unauthorized fork of snes9x
As a developer on snes9x, you would be more qualified to say if this technique is valid. Here is what I tried (on mac or linux if you want to repeat, due to use of the strings and bash scripting. one could try cygwin or msys, I suppose, on Windows). Basically I found all strings in the compiled library of supergnes, and found any match I could in the snes9x source code to those strings, and simply dumped them all out. I'll share the results at the end, but 1st the technique:
First acquire supergnes.apk file and snes9x source. Extract snes9x source somewhere. Then:
Of highest interest are:
findstrings.sh source (if you want to copy what I did):
First acquire supergnes.apk file and snes9x source. Extract snes9x source somewhere. Then:
- unzip supergnes.apk
cd supergnes/lib/armeabi
strings libsnes.so > strings_in_sgnes
./findstrings.sh /path/to/strings_in_sgen /path/to/snes9x-1.53-src
Code: Select all
memcpy
free
malloc
memset
ftell
fseek
fwrite
fread
fclose
fopen
memcmp
memmove
SA1MainLoop
SuperFXExec
dlclose
strcmp
strcpy
atoi
gettimeofday
usleep
strncmp
dlopen
dlsym
dlerror
pthread_join
pthread_create
lseek
strerror
printf
puts
strcat
getuid
getgid
chown
time
fgetc
strlen
strncasecmp
strncpy
sscanf
sqrt
atan
500C
8C"*
true
Pause
init
Out of memory
.srm
Initialize
Setup
Execute
Shutdown
Reset
Settings
SaveState
LoadState
Cheat
.ips
PATCH
6626
.n.A.
*|*L*
t ;
DF4709156BC8A23E
0123456789ABCDEF
.text
.dynamic
.got
.data
.bss
.comment
- SA1MainLoop # what are the chances this shows up in another project?
SuperFXExec # and this too.
PATCH # this too. grep for PATCH in snes9x source and u'll see how it's used. It's starting to add up. Probability that you have all these strings by chance starts to go way down.
DF4709156BC8A23E # game genie related. not necessarily evidence, but still a very odd string.
0123456789ABCDEF
Initialize # this and the following all are highly suspect 'same-named menu' options.
Setup
Execute
Shutdown
Reset
Settings
SaveState
LoadState
Cheat
findstrings.sh source (if you want to copy what I did):
Code: Select all
#!/bin/bash
# $1 /path/to/supergnes_strings
# $2 /path/to/code_base_of_interest
cat $1 | while read CMD; do
grep -r "$CMD" $2 > /dev/null 2>&1
if [ "$?" -eq "0" ]; then
echo "$CMD"
fi
done
-
- Snes9x White Belt
- Posts: 5
- Joined: Sun Mar 18, 2012 2:21 am
Re: supergnes legit or an unauthorized fork of snes9x
Google results for:
SA1MainLoop:
https://www.google.com/search?q=SA1MainLoop
SuperFxExec:
https://www.google.com/search?q=SuperFXExec
Both bring up only a handful of results. Both come up with snesjx; a port to Java from snes9x.
SuperFxExec show up in snemulds, which is a DS emulator. I don't know why it has that method, but I'd bet you it came from snes9x too.
And that's just about it for search results. So how can you have these strings in your emulator unless you took code from snes9x? Coupled with the other strings, what's likely the story here?
I would truly feel bad for everyone if I'm wrong, but at the moment, I think the onus is on supergnes is to prove they didn't make an unauthorized version of snes9x.
SA1MainLoop:
https://www.google.com/search?q=SA1MainLoop
SuperFxExec:
https://www.google.com/search?q=SuperFXExec
Both bring up only a handful of results. Both come up with snesjx; a port to Java from snes9x.
SuperFxExec show up in snemulds, which is a DS emulator. I don't know why it has that method, but I'd bet you it came from snes9x too.
And that's just about it for search results. So how can you have these strings in your emulator unless you took code from snes9x? Coupled with the other strings, what's likely the story here?
I would truly feel bad for everyone if I'm wrong, but at the moment, I think the onus is on supergnes is to prove they didn't make an unauthorized version of snes9x.
Re: supergnes legit or an unauthorized fork of snes9x
These are the most suspicious, but I would expect many more symbols to match. They might have just pulled some code from the extra chips.littlebirdie wrote:Of highest interest are:
SA1MainLoop # what are the chances this shows up in another project?
SuperFXExec # and this too.
PATCH is part of the file header of an IPS file, so if it has IPS compatibility it's likely to be there. The Game Genie table is actually pretty common, too.PATCH # this too. grep for PATCH in snes9x source and u'll see how it's used. It's starting to add up. Probability that you have all these strings by chance starts to go way down.
DF4709156BC8A23E # game genie related. not necessarily evidence, but still a very odd string.
0123456789ABCDEF
These are all pretty common names for things. This isn't enough evidence, in my opinion. There's definitely a possibility it came from something like Snes9x 1.39 with lots of function name changes, but nothing conclusive. It doesn't look like the compatibility is quite there, either. In their screenshots Chrono Trigger is missing some transparency effects.Initialize # this and the following all are highly suspect 'same-named menu' options.
Setup
Execute
Shutdown
Reset
Settings
SaveState
LoadState
Cheat
There are actually other emulators out on the market with smoking guns leading back to Snes9x, but Google isn't proactive in removing them and ignores complaints. Instead, they've removed the only legitimate version there (probably at the request of the money ports' authors). Sometimes the system just doesn't work, and this is unfortunately one of those cases.
-
- Snes9x White Belt
- Posts: 5
- Joined: Sun Mar 18, 2012 2:21 am
Re: supergnes legit or an unauthorized fork of snes9x
You would know better than I. Keep in mind that this is an android library, and has been stripped. So it's naturally a little hard to make matches.
But if you don't care, then I'll happily drop it!
If I had the time, I'd be interested to compare at a deeper level; like to analyze snes9x and supergnes while running. But I don't. Something like that would be generally pretty interesting.
But if you don't care, then I'll happily drop it!
If I had the time, I'd be interested to compare at a deeper level; like to analyze snes9x and supergnes while running. But I don't. Something like that would be generally pretty interesting.
Re: supergnes legit or an unauthorized fork of snes9x
Even with android, if you're going to use Snes9x, you need to have native code in some form to get any speed. Given the GCC/Linux/ARM platform, I think more of the symbols should still be intact.littlebirdie wrote:You would know better than I. Keep in mind that this is an android library, and has been stripped. So it's naturally a little hard to make matches.
But if you don't care, then I'll happily drop it!
If I had the time, I'd be interested to compare at a deeper level; like to analyze snes9x and supergnes while running. But I don't. Something like that would be generally pretty interesting.
And I certainly care about it, but we haven't had any luck in the past getting rid of these people, and I don't think we'll fare any better with this project when there's less evidence. The accuracy on this one looks pretty lackluster, so I don't think it'll do too well anyhow.
-
- Snes9x White Belt
- Posts: 5
- Joined: Sun Mar 18, 2012 2:21 am
Re: supergnes legit or an unauthorized fork of snes9x
Ok, understood. Thanks for your help on this.
Re: supergnes legit or an unauthorized fork of snes9x
Hey I'm Nate the lead developer for SuperGNES. I noticed this post wanted to clear up any confusion.
For the record:
SuperGNES is an original SNES emulator developed by me over four years. I accomplished this by reverse engineering open source technology, studying many freely available technical specs/documentation and a Super Flash Programmer.
A quick history. I began work on SuperGNES in 2008 planning to release it for the coming Android platform. My primary goals were to make a fast emulator for mobile and provide the best user experience I could. I love the SNES and wanted to serve newbie users who could never figure out emulation.
My first attempts at producing an SNES emulator were spectacular failures. Too many assumptions led to extremely slow execution or incomplete functionality. It was only after my third revision that I fully understood the insanity of the PPU state machine and limitations of the ARM architecture.
SuperGNES is programmed in half C and half ARM assembly for speed. If you have tracked SuperGNES development over the years you will know it has been a work in progress and still does not have 100% compatibility or all the features of modern emulators. SuperGNES is my only product unlike many other developers who mass port emulators to mobile.
Yongzh (SNesoid) was one of those mass porters. As we know he violated the non-commercial license and was eventually given the boot from Google. Yongzh also liked to take my graphic resources and legal disclaimers.
Fast forward. Snes9X EX was taken down (illegitimately, I believe) in February. I contacted Robert and offered to contribute money towards any legal fees to help him get it reinstated to the market. An attack against one good emulator is an attack against all good emulators. Robert never contacted me back but I still wish to fight for emulators place in the market.
I want SuperGNES to be an asset to the emulation community. I'm planning on integrating my SPC700 ARM core with snes_spc and releasing it in accordance with LGPL license (blargg has okay-ed). I'm also releasing an upcoming open source SNES game title.
If anyone has questions/comments about SuperGNES please let me know or email me at contact@supergnes.com.
Cheers
Nate
SuperGNES Dev

For the record:
SuperGNES is an original SNES emulator developed by me over four years. I accomplished this by reverse engineering open source technology, studying many freely available technical specs/documentation and a Super Flash Programmer.
A quick history. I began work on SuperGNES in 2008 planning to release it for the coming Android platform. My primary goals were to make a fast emulator for mobile and provide the best user experience I could. I love the SNES and wanted to serve newbie users who could never figure out emulation.
My first attempts at producing an SNES emulator were spectacular failures. Too many assumptions led to extremely slow execution or incomplete functionality. It was only after my third revision that I fully understood the insanity of the PPU state machine and limitations of the ARM architecture.
SuperGNES is programmed in half C and half ARM assembly for speed. If you have tracked SuperGNES development over the years you will know it has been a work in progress and still does not have 100% compatibility or all the features of modern emulators. SuperGNES is my only product unlike many other developers who mass port emulators to mobile.
Yongzh (SNesoid) was one of those mass porters. As we know he violated the non-commercial license and was eventually given the boot from Google. Yongzh also liked to take my graphic resources and legal disclaimers.
Fast forward. Snes9X EX was taken down (illegitimately, I believe) in February. I contacted Robert and offered to contribute money towards any legal fees to help him get it reinstated to the market. An attack against one good emulator is an attack against all good emulators. Robert never contacted me back but I still wish to fight for emulators place in the market.
I want SuperGNES to be an asset to the emulation community. I'm planning on integrating my SPC700 ARM core with snes_spc and releasing it in accordance with LGPL license (blargg has okay-ed). I'm also releasing an upcoming open source SNES game title.
If anyone has questions/comments about SuperGNES please let me know or email me at contact@supergnes.com.
Cheers
Nate
SuperGNES Dev

- Camo_Yoshi
- Snes9x Purple belt
- Posts: 922
- Joined: Thu Nov 08, 2007 7:59 pm
Re: supergnes legit or an unauthorized fork of snes9x
Thank you for clearing this up! I'm glad you didn't have bad intentions. 

Snes9x FAQs | Forum Rules
What operating system are you using? 32 or 64bit? Version of Snes9x? Is the text at the bottom of the window white when you load the game?
These suggestions are usually the solution to your issue!
What operating system are you using? 32 or 64bit? Version of Snes9x? Is the text at the bottom of the window white when you load the game?
These suggestions are usually the solution to your issue!
-
- Hero of Hyrule | Official Port Recruiter
- Posts: 2586
- Joined: Mon May 24, 2004 5:06 pm
- Location: 255.255.255.255
Re: supergnes legit or an unauthorized fork of snes9x
And just so ya know, this Robert fellow of which you speak... his nick here is Rakashazi.
With that being said, we could use more help on the Android end, if you so desire..
With that being said, we could use more help on the Android end, if you so desire..

Unofficial Test Monkey For:
* Snes9X GX (Wii)
* Snes9X EX (Android)
* Snes9X 64-bits (PC/Mac)
ZSNES|Ben Heck|NSRT|Bob Smiley
Re: supergnes legit or an unauthorized fork of snes9x
If thats a fork which I don't think so they are doing a TERRIBLE job at it, in my galaxy S4 and my galaxy tab 4 7" have sound issues, BIG problems there, stuttering, freezing, slow, chipping, missing notes, you name it!, Snes9x EX+ smooth as butter.littlebirdie wrote:Hey all,
I was curious if the snes9x team could say whether supergnes https://play.google.com/store/apps/deta ... .supergnes is a official version of snes9x, or if it's an unauthorized fork of snes9x.
If unauthorized, it's particularly frustrating that the version linked to is $4--a lot of hard work ripped off.
Wouldn't be easy to get taken down from Google if so, too?
Thanks all.