Next Generation Emulation banner

1 - 20 of 57 Posts

·
Registered
Joined
·
92 Posts
Discussion Starter #1
OK, so I am running Vista..yes, yes I know, dumb move. But I need it to do stuff for work.

I double click VJ.exe (ver 1.1.0. dated Oct 9th 2005 which I thought was newer than that tbh, it is the last official release you guys did) and nothing, absolutely nothing. It just disspears back to desktop. No warnings, no errors, just boom...gone...

Any ideas anyone? Have tried the usual run in compatability mode and administrator stuff. HELP!!! I love this emu, and need to get it running again..

Thanks, Ricardo
 

·
Registered
Joined
·
344 Posts
I don't develop on Windows machines anymore (mainly because there's no need and I could see the Vista handwriting on the wall) but I will try to supply binaries for those of you in that boat. But since I don't run Vista (and never will, not even in a VM) it's going to have to be up to somebody else to help test that avenue.

BTW, the last official release was 1.0.7. Maybe you have a version from CVS Compile? At any rate, also, you might try running it from the command line and see what messages (if any) show up.
 

·
Registered
Joined
·
92 Posts
Discussion Starter #3
Yeah, understand your feeling totally on the Vista front Shamus...belive me it does suck sweaty donkey balls!

And yes, it was 1.0.7 from CVSCompile..seems so very loong ago now...lol

I have just d/laoded the fresh new stuff from your gratefully supplied Subversion host (thank you very very much for this, lot of work done and it is appreciated). So, my n00b question is this. To compile under a Windows platform, what programs do I need to actually compile this? I have never compiled this sort of thing, I have only ever worked with VB a long time ago and a little bit of C#.

Cheers for any help, Ricardo :D
 

·
Registered
Joined
·
57 Posts
If you ever get the latest VJ running on Vista, please let me know. I'm on the same boat as you but I have 0 experience compiling stuff. :(
 

·
Registered
Joined
·
92 Posts
Discussion Starter #5
Well tbh m8, I need to be taught fromt he groundup on this as well. Using VB it pretty much assembles itself, same with C# and I only ever wrote small amounts of code so as to call external programs from a simple interface, never anything on the scale of VJ, let alone compile it....
 

·
Registered
Joined
·
344 Posts
A Crash Course on Compiling VJ on Win32

OK, here's a crash course in compiling Virtual Jaguar on win32. First, you need to download and install MinGW and MSYS on your machine. Once that's setup properly, go into the MSYS environment and create a directory for the VJ source to live in.

Note that this will all be command line oriented, so to make directory you would type "mkdir vj" (without the quotes) to make a directory called vj in the current directory you're in. To change directories, type "cd vj" (for example) to change into the directory you just created. To get out of that directory, you would type "cd .."; this will take you one directory up in the hierarchy.

Now, you need to put the Virtual Jaguar sources you just downloaded through SVN into the directory you created in the MSYS command line. You can use Windows Explorer to cut and paste the files to the correct place (note that the directory you created will probably be in a subdirectory under C:\MinGW or wherever you installed MinGW).

Now, before you can do anything, you'll have to install a few extra libraries to be able to compile VJ. You'll need zlib, libsdl, and libcdio. Since you'll likely have to deal with tar.gz packages, we'll walk you through that process. As an example, we'll install zlib.

Go to the zlib page linked above and download the latest source code. It will be a file ending in .tar.gz. Download it to the same place that you created the vj subdirectory. Once it has been downloaded, go into the MSYS environment. Type "ls" to see a listing of the current directory (you can put an optional parameter after the ls, such as "ls vj" to see what's in the vj subdirectory without actually having to go into it). The downloaded zlib package should be there. You would then type "tar xzvf zlib-1.2.3.tar.gz" to decompress the file. It should create a subdirectory for you called "zlib-1.2.3". Now, go into that directory (type "cd zlib-1.2.3"). The steps for compiling and installing the package is to first type "./configure", then type "make", then type "make install".

Assuming all went well, you would repeat these steps for libsdl and libcdio as well. Once all these libraries are compiled and installed in your MSYS environment, you can now go into the vj subdirectory and build it. Here are the steps (almost identical to the library installation steps):

cd vj
make

Now, take a deep breath, then type "./vj". Assuming all went OK, you should have a nice, shiny new Virtual Jaguar to play with. And you're now an unofficial build tester for the Win32 platform. Congratulations! :thumb:

Give it a try and let me know how it goes; I'll help you to navigate over the rough spots. :)
 

·
Registered
Joined
·
92 Posts
Discussion Starter #7 (Edited)
to do the ./configure to the libcdio, you need to have installed iconv as well. Took me a while to suss that one out...lol

Done all that you told me, but I am getting a "cannot find -lcdio collect2: ld returned 1 exit status make *** [vj.exe] error 1

Any ideas ?
 

·
Registered
Joined
·
344 Posts
Hmm, it thinks there's no compiler... What happens if you type "gcc -v"? You might have to install a compiler if one didn't come with the base MinGW install (which it should have!). Strange, it finds "tar" but not "gcc"? :-/ Do the other libraries build? If so, I can temporarily disable the libcdio dependency until we figure this out. :)
 

·
Registered
Joined
·
92 Posts
Discussion Starter #9
gcc -v (in msys) gives this

Reading specs from c:/mingw/bin/../lib/gcc/mingw32/3.4.5/specs
Configured with: ../gcc-3.4.5-20060117-3/configure --with-gcc --with-gnu-ld --with-gnu-as --host=mingw32 --target=mingw32 --prefix=/mingw --enable-threads --disable-nls --enable-languages=c,c++,f77,ada,objc,java --disable-win32-registry --disable-shared --enable-sjlj-exceptions --enable-libgcj --disable-java-awt --without-x --enable-java-gc=boehm --disable-libgcj-debug --enable-interpreter --enable-hash-synchronization --enable-libstdcxx-debug
Thread model: win32
gcc version 3.4.5 (mingw-vista special r3)

Wonder if it's a Vista thing perhaps?


the other libs compiled successfully, thanks to your help.

Then, I shall do a little "testing" :p

these are the last few lines from the vj make

src/tom.cpp: In function `void TOMExecScanline(uint16, bool)':
src/tom.cpp:959: warning: unused variable 'pwidth'
src/tom.cpp:960: warning: unused variable 'mode'
src/tom.cpp:961: warning: unused variable 'varmod'
src/tom.cpp:1422:2: warning: #warning Actually, we should check to see if the Enable bit of VMODE is set before doing this... !!! FIX !!!
*** Compiling src/unzip.c...
*** Compiling src/version.cpp...
*** Compiling src/video.cpp...
*** Compiling src/vj.cpp...
*** Processing icon...
*** Linking it all together...
c:\mingw\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: cannot find -lcdio
collect2: ld returned 1 exit status
make: *** [vj.exe] Error 1
 

·
Registered
Joined
·
57 Posts
I tried to do this and I definitely felt like a monkey. I got everything and installed everything but when doing the ./configure thingy I got a few missing stuff so I deleted it all in frustration.. lol. Bad habit. I'll d/l and try it again tomorrow. grrr
 

·
Registered
Joined
·
92 Posts
Discussion Starter #11
I did the same, as I haev never tried sdl stuff before, it's a bit of a bugger to get your head around. But, actually it's quite easy tbh. Use this link for setting up MinGW and Msys

Setting up MinGW and MSYS

tells you how to set up the path you need for msys to use MinGW, which helps :D
 

·
Registered
Joined
·
344 Posts
I think you need a gcc version of at least 4.3 to compile libcdio. You can get it from here. Look at the gcc-4.3.0-20080502-mingw32-alpha-notes.txt file to see how to install it over the old one. You can either download the full version (54MB for the .7z version, 175MB for the .tar.gz version) or download the gcc-part-core-* and gcc-part-c++-* (8 and 6MB, respectively). It's too bad they've stuck 4.3.0 in there, especially when 4.3.2 has been stable for quite some time now.

At any rate, it's worth a shot. You might want to copy your current MinGW install to a backup location just in case something goes horribly wrong. ;)
 

·
Registered
Joined
·
92 Posts
Discussion Starter #13 (Edited)
GCC version now at 4.3.2.
But I still get the same error. Really odd.

If you can tell me how to disable (temporarily ofc) libcdio dependancy and what this might affect (guessing just reading CD based games?) Then I shall get to playing *cough* I mean testing.......honest..... :p
 

·
Registered
Joined
·
344 Posts
I've just written a patch that will turn off the dependency on libcdio, but I'd like to save that as a last resort. It looks like your build of libcdio didn't make static libraries, so what I'd do is to look at the ouput of "./configure --help" in the libcdio directory to see if there is a switch that turns on static compilation (--build-static or somesuch). If there isn't any such animal, I'll go ahead and commit the patch but I'd rather get libcdio working as it's supposed to be cross-platform. Kinda defeats the purpose of it if it doesn't work. :-/
 

·
Registered
Joined
·
92 Posts
Discussion Starter #15
just been looking through it, there is no option to do do a static build in ./configure :(
There are very very few options in this ./configure.
I have also looked through the directory, no trace of a libcdio.dll file. It's really frustrating, so close to having this working I can taste it, but the bugger just won't fly....

I did the #if 0
#endif

you suggested in an earlier post (which I see you have editted away..lol) and removed the -libcdio from VJ's makefile, which got round the libcdio problem, but I got another set of problems then, see below.

c:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/ext/new_allocator.h:69: undefined reference to `_Unwind_SjLj_Resume'
obj/sdlemu_config.o: In function `ZNSt10_List_baseI10token_listSaIS0_EE8_M_clearEv':
c:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/basic_string.h:(.text$_ZNSt10_List_baseI10token_listSaIS0_EE8_M_clearEv[std::_List_base<token_list, std::allocator<token_list> >::_M_clear()]+0x2f): undefined reference to `__gxx_personality_sj0'
c:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/basic_string.h:(.text$_ZNSt10_List_baseI10token_listSaIS0_EE8_M_clearEv[std::_List_base<token_list, std::allocator<token_list> >::_M_clear()]+0x47): undefined reference to `_Unwind_SjLj_Register'
obj/sdlemu_config.o: In function `sdlemu_getval_int':
C:/msys/1.0/home/Ricardo/vj/src/sdlemu_config.cpp:138: undefined reference to `_Unwind_SjLj_Unregister'
obj/sdlemu_config.o: In function `Z21string_tokenize_valuev':
c:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/stl_list.h:126: undefined reference to `_Unwind_SjLj_Resume'
collect2: ld returned 1 exit status
make: *** [vj.exe] Error 1

Any ideas? Or is it time to just say "nuts" to the cd suport in there and try something else?
If I had any idea of how to program this stuff I would take a look to see if I can help. Give me about 5 years and a ****load of manuals and I'll have a stab it with you...lol
 

·
Registered
Joined
·
344 Posts
Yeah, I edited it away because I realized that that approach may not work. :p It's really a shame that libcdio doesn't get built properly under MinGW--I'll bet it works under Cygwin, but that requires distributing an extra DLL with your executable which is not a good solution IMO. I guess I'll have to go and bug the libcdio developers to see if they care about MinGW or not. :p

And yeah, since you have a new compiler you'll have to do a "make clean" and another "make" just to make sure that all your object files are created with the same compiler. ;) But you may run into another problem. If you run into that problem, post the details and I'll commit the patch. :)

One last thing: Are there any library files in the libcdio subdirectory that it builds in? Anything with a .dll or .a extension?
 

·
Registered
Joined
·
92 Posts
Discussion Starter #17
No mate, nothing with either of those extensions.

Did a "make clean" and another "make" on the libcdio jsut in case, also on VJ, still no joy. If you want to just pass the altetered "makefile" to me (I assume that's where you had to make the alterations) instead of commiting a full patch, I'm sure we can sort something out that way.
Cheers for your patience Shamus. :D
 

·
Registered
Joined
·
344 Posts
OK, I commited the patch. Do a "svn up" to get it. :) Look for comments near the "LIBS = ..." line. Do what it says, then "make clean", then "make".

In the meantime, from the error you posted above, it looks like you might need a more up to date copy of glibc to go with your new gcc 4.3. I just have this feeling... ;) Also, very strange that libcdio did not build any libraries! It seems it installed proper headers, though. Very odd!

One thing you might try when looking through the libcdio subdirectory is to pass the "-A" flag to "ls" to see any hidden subdirectories (usually they start with a "."). So you'd do something like "ls -A" in the main libcdio directory, then in the subdirectories, etc. It *has* to have built *something*.
 

·
Registered
Joined
·
92 Posts
Discussion Starter #19
IT COMPILES!!!!!!!


But, still have the original "doesn't even open the window, just nothing happens" problem.

I tried telling vista to switch to compat mode for win 2000 and to disable visual themes, but exactly the same. the screen flicked to black to set the theme to basic, then flicked instantly back to normal. It's almost as if the vj.exe says "open:close:end"

There is no error log created (vj text file).

It's litterally like the exe doesn't even open.. :(

tried opening in a command promt to see if there was any error, nothing. Hit enter, line moves down one, nothing else happens.

I might have to try and see if it runs on a WinXP virtual machine. Just to make sure it compiled ok, but I think it did.
 

·
Registered
Joined
·
344 Posts
Did you try running it in the MinGW environment? Type "./vj.exe" to run it there.

Also, if you're doing the double-click thing, you'll need to put SDL.dll in the same directory. That might have been your problem all along. :thumb:
 
1 - 20 of 57 Posts
Top