Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
That was it! I had changed the Optimization level in my Xcode project and Target, but didn't change it in the makefile. The reason I'm using a makefile is because Xcode can't natively build the emulator code, so I created an Xcode project which uses the supplied makefile to build.
I don't get it. I've been building the whole project using Xcode from the start. What do you mean Xcode can't build the emulator?
 
I don't get it. I've been building the whole project using Xcode from the start. What do you mean Xcode can't build the emulator?

There are two parts of the project, the Objective-C UI portion which can be built using Xcode, and the actual SNES9X source code which can't be built natively by Xcode. If you wanted to modify the SNES9X source code (which I have been referring to as the Emulator code), you would have to edit it in a text editor of some sort and then compile the new libpocketsnes.a file via Terminal and the "make" command. Now however, I've created an Xcode project for the SNES9X source code which makes it much easier to edit, and essentially for this project Xcode reads the makefile to make the project. This way, you can edit both the Objective-C code and the SNES9X code from within Xcode in the same Xcode workspace.

Hope that cleared it up :p
 
There are two parts of the project, the Objective-C UI portion which can be built using Xcode, and the actual SNES9X source code which can't be built natively by Xcode. If you wanted to modify the SNES9X source code (which I have been referring to as the Emulator code), you would have to edit it in a text editor of some sort and then compile the new libpocketsnes.a file via Terminal and the "make" command. Now however, I've created an Xcode project for the SNES9X source code which makes it much easier to edit, and essentially for this project Xcode reads the makefile to make the project. This way, you can edit both the Objective-C code and the SNES9X code from within Xcode in the same Xcode workspace.

Hope that cleared it up :p
Kind of cleared up. But I've been building the whole thing at once from within Xcode from the get go. Cmd+B and it builds both the UIKit part and the snes9x.cpp and so on parts (and tacks on the .S files too). My question was more due to that. I've been building without a makefile OR a libpocketsnes from the start :p

Even now, with the updated SNES9X 1.53 source tree I'm also building right from Xcode.
 
Kind of cleared up. But I've been building the whole thing at once from within Xcode from the get go. Cmd+B and it builds both the UIKit part and the snes9x.cpp and so on parts (and tacks on the .S files too). My question was more due to that. I've been building without a makefile OR a libpocketsnes from the start :p

Even now, with the updated SNES9X 1.53 source tree I'm also building right from Xcode.

Huh, well nice job for achieving that :p

Also everybody, SNES4iOS Version 1.1 is now available from GitHub. Changes from previous versions include:

•Sustain Button: a new button (looks like a circle with four arrows pointed towards the center) allows you to essentially sustain, or hold down a button without keeping your finger on the button. You tap the sustain button, it will turn orange, and then you tap the button you wish to sustain. For example, if you wanted to keep your character moving to the right, you’d tap the sustain button, then tap the right button, and then you can lift your finger off and it will keep going to the right. This is especially useful in platformers such as Mario games, as you can sustain the run button without having to hold it down!
•Both the Objective-C app code and the C snes9x emulator code are included in the same .xcworkspace file. It’s strongly recommended you use the workspace file instead of the individual project files.
•Since the snes9x code is now in an Xcode project, it can be compiled natively in Xcode via the included makefile. However, you MUST clean the pocketsnes target before EVERY build, or else it won’t build all your changes.
•Converted everything to LLVM 3.0! No longer need to use an old Xcode version to change the snes9s code!
•No longer crashes when loading a ROM (however, at this time it still crashes when quitting one).
 
I'm wondering. Why would Apple approve the app? They don't allow emulators. Sure some have passed through but SNES would be obvious. Man, I wish. :cool:
 
I'm wondering. Why would Apple approve the app? They don't allow emulators. Sure some have passed through but SNES would be obvious. Man, I wish. :cool:

Probably will never be allowed in, because Nintendo if anyone will fight it. Heck, even emulators in the Android Market are disappearing now =/
 
Probably will never be allowed in, because Nintendo if anyone will fight it. Heck, even emulators in the Android Market are disappearing now =/

Really Android? I thought the market had no control over that since it's open source.

Hopefully if it does work and Apple does approve. I better download before they figure out it's an emulator.

Honestly, that's why I want to JB my 4S whenever it's available. Emulators. I already have iMAME which got approved somehow. I just want an SNES emulator on my iPhone though. :D
 
Interesting. I do see a lot of emulators and NSFW apps on android though. I guess that's why I thought.

Of course since anyone can put any app up on the Android Market, there are bound to be the ones that sneak through. However, last May Google started removing some, so who in the end the console makers/publishers have the say (music industry all over again :p)

Anyways for everyone else, with today's announcement of the iCade Mobile I think I'll work on adding iCade support in a future update. Hardware buttons + SNES Emulator = win in my book!
 
Of course since anyone can put any app up on the Android Market, there are bound to be the ones that sneak through. However, last May Google started removing some, so who in the end the console makers/publishers have the say (music industry all over again :p)

Anyways for everyone else, with today's announcement of the iCade Mobile I think I'll work on adding iCade support in a future update. Hardware buttons + SNES Emulator = win in my book!

Ah, wow.

And for the update. lol, release one to the app store first then do w/e iCade update you want! :cool: I'm OK w/ touch screen controllers. :D
 
Ah, wow.

And for the update. lol, release one to the app store first then do w/e iCade update you want! :cool: I'm OK w/ touch screen controllers. :D

Trust me, I would love to release it in the App Store :p Maybe down the road Apple will loosen up their restrictions (although I highly doubt it).
 
Trust me, I would love to release it in the App Store :p Maybe down the road Apple will loosen up their restrictions (although I highly doubt it).

I'm wondering. How did apps like iMAME (arcade emulator) get into the app store? I think a year ago some NES emulator also sneaked into the app store.
 
I'm wondering. How did apps like iMAME (arcade emulator) get into the app store? I think a year ago some NES emulator also sneaked into the app store.

With hundreds of apps submitted each day, there's bound to be one or two that get through. Plus, each reviewer may have a different opinion of what's against the app guidelines and what's not.
 
Having just bought an iCade and really liking it I'd love to see some iCade support for the snes emulator! Great work on the emulator so far! Keep it up!
 
The emulation crash is caused by the while(1) loop in main.mm - the thread exit is nasty. I modified the loop to run off the __emulation_run variable instead - no more crash.

Start at the while(1) loop and work down, modify it as follows:

1. Change the while(1) loop to this:

Code:
        printf("entering main loop\n"); fflush(stdout);
	while (__emulation_run)

2. Change this if statement as follows:

Code:
//if( !__emulation_run || __emulation_saving)
if(__emulation_saving)

3. Remove or comment out this block:

Code:
		/*
		if(!__emulation_run)
		{
			set_gamma(100);
    			gp_Reset();
    			app_MuteSound();
    			gp_deinitGraphics();
    			if(vrambuffer != NULL) free(vrambuffer);
    			vrambuffer = NULL;
    			S9xGraphicsDeinit();
    			S9xDeinitAPU();
    			Memory.Deinit();
    			pthread_exit(NULL);
    			break;
    		} */

4. Add this shutdown/cleanup code to the bottom of the file right above the return 0:

Code:
	//Shut down the emulation
	printf("Emulation complete.\n");fflush(stdout);
	set_gamma(100);
	gp_Reset();
	app_MuteSound();
	gp_deinitGraphics();
	if(vrambuffer != NULL) free(vrambuffer);
	vrambuffer = NULL;
	S9xGraphicsDeinit();
	S9xDeinitAPU();
	Memory.Deinit();

	return 0;
 
I'd like to get into making apps for the IPAD and IOS 5. Can anyone give me an idea of what kinds of languages I might need to learn and software to use. Im sure I would probably need a MAC Computer and Apple SDK.
 
Same. I'm wondering if there's any update on the application. On-screen controls for iPad would make this a must compile.
 
With hundreds of apps submitted each day, there's bound to be one or two that get through. Plus, each reviewer may have a different opinion of what's against the app guidelines and what's not.

As far as I know, all emulators are considered bad by the tech giants. They feel like it is an agent of piracy or something to that effect
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.