Good to know that the filenames are
being fixed.
Could you please point me to
what to link against for
PresentationFramework
and
System.Windows.Shell
on Linux with mono?
You need to be using the portable branch. The master branch is developed without consideration for whether it works on non-windows platforms. Perhaps your problems will vanish if you do that.
Git is requested by the build process as part of the version.csproj building, which interrogates the local git repository for revision information. I would expect that to work even if .git didnt exist, but I don't bother testing it on linux so I don't know. Perhaps it's been fixed in the portable branch.
Git is required on the portable branch too. The Version project has a conditional to execute the Build.Tool.exe under mono as part of the build process. (It's identical to the windows command, just with 'mono' in front so that it actually works.)
Linux build instructions are mentioned earlier in this thread. Just check out the portable branch from github, using git, and open it in the CURRENT version of MonoDevelop and build it. Don't use an old version, they distribute official ones themselves because Linux package mangers don't like to manage up to date packages themselves.
BizHawk (from the branch) still builds out of the box on Linux last time I tried. You might have an issue with the Version project, that's the only thing that ever gave me troubles because MonoDevelop sometimes doesn't like that there aren't any files in it. You can work around the problem by adding a file, or creating the VersionInfo.cs file that the version project would have created yourself, then just turn off that project so you don't get a build error from it.
Last time I tried BizHawk on Linux, it did not work very well. It builds fine, but the UI was very unstable and the crashes were inside of the mono framework itself. It's been a while since I've tried it on Linux though, I don't really use it very often because of how often stuff breaks.
Thanks for the advice. I tried building from the mono-portable branch this time.
Version.csproj still wouldn't compile, with error
CSC: error CS2008: No files to compile were specified
I found a workaround. Inside of the csproj file, I added:
<CoreBuildDependsOn>
</CoreBuildDependsOn>
(That should probably be committed to git.)
Then it compiled until it reached
Input/Input.cs(132,27): error CS0234: The type or namespace name `GamePad360' does not exist in the
namespace `BizHawk.Client.EmuHawk'. Are you missing an assembly reference?
This message was very strange. As far as I can tell, all of the GamePad360 parts are correctly #if'd out. I even tried putting gibberish in them to see if that would prevent compiling. It didn't. But, apparently there's some later phase that still finds the symbol somehow? So, I ran cpp manually to remove those parts.
After that, it compiled! It took me a bit to realize that the binaries were in output. I guess the other .exe files in obj/x86/Release are actually object files or something?
When I try to run output/EmuHawk.exe (I'm guessing that's the main program?), I get a window which says:
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
---> System.ArgumentException: Stream is not a valid .resources file! It was possibly truncated.
---> System.IO.EndOfStreamException: Failed to read past end of stream.
at System.IO.BinaryReader.FillBuffer (Int32 numBytes) [0x00000] in <filename unknown>:0
...
at BizHawk.Client.EmuHawk.Properties.Resources.get_logo () [0x00000] in <filename unknown>:0
I have no idea what that means. I figured the resource files would be built into the .exe file? Does that mean I have to give the executable the path to the .resources files? Or does it mean it didn't include them properly during linking? The .resources files appear to exist alongside the .resx files.
I tried your suggestion, it seems to work for me since I can build the Version project without disabling MSBuild now. Committed to Git. Thanks for solving that one.
No clue on the error you got either. WINDOWS should not be defined, although I recently fixed an instance in DiscoHawk where WINDOWS was hard-coded as a define. Glad you found a way around it... I don't think I've seen that problem myself. Binaries are build into their respective projects and copied to output at the end, I think.
I would suggest running via MonoDevelop by clicking the run button in the toolbar, at least until you can get it working.
I've seen resource errors before, but they were compile errors and not runtime errors. For me those were the result of using XBuild and not MSBuild, or sometimes they were the result of not cleaning and rebuilding after an update. Make sure you're running a recent MonoDevelop (I'd assume you are now, since it built), Clean all projects, manually delete anything in the obj/ folders and Rebuild All again.
Clean won't delete everything in the obj folders sometimes, and I've had to do it manually before due to merge timestamps and MonoDevelop deciding it doesn't need to rebuild some resources even after cleaning.
Good luck?
Thanks a lot for the help!
I finally got it to compile. When cleaning and rebuilding, it died on making the resource file. But, when I tried to compile again, for some reason, it started AFTER the resource file. So, I guess it did have a truncated file.
It turns out this was a problem with my system, not mono or BizHawk. I had a buggy version of libpng. The problem is described in:
https://bugs.gentoo.org/show_bug.cgi?id=472764
(Though, this wasn't on Gentoo. But, that's the problem I had.)
They have a simple workaround:
for i in BizHawk.Client.EmuHawk/images/*.png; { convert "$i" png32:out.png; mv out.png "$i"; }
for i in BizHawk.Client.EmuHawk/images/ControllerImages/*.png; { convert "$i" png32:out.png; mv out.png "$i"; }
for i in BizHawk.Client.EmuHawk/images/tastudio/*.png; { convert "$i" png32:out.png; mv out.png "$i"; }
That fixed the issue, and it fully compiled, and was runnable.
I also ended up changing
cgc to cgc.exe in
BizHawk.Client.EmuHawk/MainForm.cs
and doing
chmod 755 output/dll/cgc.exe
(I'm not sure if just the latter is necessary.)
Of course, now that I got it to start, I'm getting all sorts of problems with it trying to load win32 dlls, e.g.
output/dll/blip_buf.dll
How is that part supposed to work? I take it this is where the different cores come in? Is there a list of which parts are in C# as opposed to a pre-compiled DLL, or what configuration I need to use to get that?
That's not going to work correctly. CGC is used for compiling shaders when running in OpenGL mode. You're not going to be able to use those by going back to the Windows EXE, Linux can't run that. The correct solution would be to download the Linux version of the CGC SDK from Nvidia and make the appropriate changes so BizHawk can use it.
Yeah, this is the part where you actually have to struggle a bit.
All of the .dlls in the output (or output/dlls/) folder that aren't .NET code need to be ported to Linux, and you'll have to put the .so files in the output folder. Mono handles looking for the correct filename automatically, so for something like blip_buf.dll, it automatically looks for blip_buf.so on Linux and blip_buf.dylib on Mac OS X.
I've had to do native OS X builds of most of those DLL's, but there are a few that I haven't been able to do yet for various reasons. Until you port over the necessary .dlls and provide native Linux builds, those features won't work. Any BizHawk cores that are 100% C# should work though. For example, Sega Master System and GameGear games should work just fine now that you have the code building. If they don't, you'll have other problems to fix first. :-)
SNES, N64, Genesis, Saturn, PSX, Gameboy Color, GBA, LibRetro and QuickNES are some of the native cores. Of those, I made Xcode projects for about half of them so that I could build .dylibs for OS X. Nobody has done any work on the Linux side for that. As to how you build .so files, I don't think I can help with that. Perhaps there's a C/C++ IDE that has a project type for it. On OS X, I was able to make a .dylib project in Xcode, add the files I needed, then just keep compiling until I fixed all of the build errors.
blip_buf is an easy one to start with. The 2nd easiest will probably be the Genesis Plus GX code, it's pure C and already multi-platform. For that I didn't need to make any code changes at all to build it for OS X, I just had to make a project, add the files, set the appropriate pre-processor defines (copied from the Windows build, minus a WINDOWS define if one existed) and compile. For some of the other ones that I've already ported to OS X, there are #if WINDOWS defines in the code already, and since OS X is based on Unix, the changes I made will probably help Linux builds go easier too.
oh baby you will love my new computer.
here are the specs.
OSX El Captain (sadly)
version 10.11.1
Processor 2.2 GHz intel core i7
Memory 8 GB 1600 MHz DDR3
Start up dick Macintosh HD
Graphics intel HD Graphics 6000 1636 MB
here is proof https://twitter.com/oblivionwalkerr/status/690066753746014208
I’m sorry. Really I am... I am so sorry for what I did. Forgive me.
Hello, I need your help. I would like to install BazeHawk on my Ubuntu 14.04 LTS. I used this link
http://code.google.com/p/bizhawk/downloads/detail?name=bizhawk-1.0.4a-linux.tar.gz
Then I installed MonoDevelop. I try to run this command "mono BizHawk.MultiClient.exe" but it doesn't work. The error is "Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application."
Can anyone please help me?
What's wrong with El Capitan? I think it's fine.
I had some stability issues last fall, but after wiping everything and doing a re-install without restoring from a backup everything has been perfect ever since.
Your version of Mono is probably old. Make sure you're running the latest official version, not the one that comes with Ubuntu. The one that comes with Ubuntu is not maintained and just really old. The only way to get the latest version is directly from the mono-project website:
http://www.mono-project.com/docs/getting-started/install/linux/#debian-ubuntu-and-derivatives
That being said, nobody with Linux experience wants to support the Linux version and that build is from 3 years ago. If you find someone who cares, they might be able to do a better job providing more recent versions.
Hi all, i seem to come across some of these issues that cause biz hawk to crash. if i want to record an AVI file it takes me into the process of encoding the movie and when i press start it crashes and deletes some of my work even though i saved it.
another issue i have is trying to reload a state in rerecord mode. it seems to say load state error! though it isn't a big deal as i just turn rerecording off and load the state and then rerecord over the old part i did not want in the TAS.
another issue is when ever i try to open a movie file in the movie selection file. IT DOES NOT TURN UP. the only way i can see my movie is to open the recent movies window.
I’m sorry. Really I am... I am so sorry for what I did. Forgive me.
1. I seem to recall looking at the movie encoding stuff at one point, but I don't really remember finishing it. I think there might be a reason it doesn't work, but I'll have to look at it again.
2, 3. It looks like the movie stuff broke on OS X when the file format changed from .bkm to .bk2. I'll need to fix it for the next release.
Edit: I fixed #3 today so that should definitely be resolved the next time I post a release. My solution for that problem was still intact, but the original Windows code was running by accident. It might fix other non-windows problems that accidentally returned, but I still need to check on those.
Edit 2: Fixed #2 as well.
Nothing specific to the Mac version.
There was a new Windows version, so I made a new Mac build. There's a newer version of the mgba core, which is nice for people who use that for GBA games. I don't really pay too much attention to the changes anymore, I just merge them over and try to make sure all of the systems that worked before still work.
Oh ok. Well that's good to hear you updated the Cores. I ran into an issue where I can't press more 3 keys at once. (Might be keyboard lay out.
Is there any restrictions on the GBA emulator?
I’m sorry. Really I am... I am so sorry for what I did. Forgive me.
But they are complicated to set up. I love the experience where the emulator is telling you what settings will work first time. And just applies them. Like the Mac one does.
I’m sorry. Really I am... I am so sorry for what I did. Forgive me.
But that's what OpenEmu is supposed to be. OpenEmu was designed for users who don't know what the hell they're doing, it manages your ROMs for you like iTunes manages music. (And it's why I dislike it, because I can't just load up a game, because even the "Open ROM" feature adds it to the library.) If you're looking for something easy that just works, it's supposed to be the easiest option.
Regarding SNES, I made a couple of attempts but there are technical reasons why I can't do it as-is. It's possible, but it requires changes that I'm not interested in making right now. Using the RetroArch Snes9x core via Open Advanced should be feasible, although for some reason the RetroArch stuff wasn't working either and I didn't look into the problem further. I'll look again at some point.
TAG, I haven't looked into your 3-keys limitation yet but I suspect that it's probably not BizHawk's fault. I'm not sure what GBA restrictions you're asking about, both GBA cores are supported on OS X and I haven't omitted any features from those as far as I know.
I´ve done everything that you should do, ive also installed mono... When i open the program nothing happens and the spinning circle pops up. Please help :(
How long are you waiting for it? On some versions of OS X it takes several minutes for the app to launch for the first time, which is due to mono building font caches or something like that. After it happens once, it's fine.
What OS version?