Next Generation Emulation banner

Vista anad VJ

11K views 56 replies 5 participants last post by  XyberX 
#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
 
#2 ·
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.
 
#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
 
#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....
 
#6 ·
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. :)
 
#8 ·
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. :)
 
#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
 
#10 ·
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
 
#12 · (Edited)
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. ;)
 
#14 · (Edited)
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. :-/
 
#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
 
#16 ·
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?
 
#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
 
#18 ·
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*.
 
#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.
 
#21 ·
Had already put the sdl.dll in the same folder as VJ.exe.

Yeah, had tried running it in the MinGW enviroment before I tried the double-click.

It used to work perfectly (if slowly) under windows XP, the same build as I 1st tried on Vista.

Must be something in the way the exe is handled by the OS causing a prob in vista I recon. I'll have an ask round to a few Vista support bods I know, see if they can think of anything.

Vista is just s**t, let's face it.....lol
 
#22 ·
One more thing to try is gdb. I think it's part of the MinGW distro but if not, no worries. :) Go into the virtualjaguar directory in the MSYS environment and then type "gdb vj.exe". Next, while in gdb, type "run" and it should run up to the crash. Type "bt" to generate a backtrace and post it here.
 
#23 ·
Ok I did that, gdb gave me this :

"warning: Invalid parameter passed to C runtime function.


Program exited with code 01.
(gdb) warning: Invalid parameter passed to C runtime function.

warning: Invalid parameter passed to C runtime function"

but the mingw32 versiondoesn't do "bt" *sighs*

But hopefully the above will help you out understanding, prob not enough info but all that win32 can gie ...dammit...


Although, I typed "backtrace" and got "(gdb) No stack." if that helps
 
#24 ·
It's like it's not even getting a chance to initialize at all. There's no stack because the program never gets a chance to run. :-/

Here's a silly question: Can you run *any* SDL based programs on your system? We can take this step by step to see where the problem lies. :thumb:
 
#26 ·
Just as a thought, could it be something to do with the system using a Dual-core processor?

i used to play U2XMP online, and with a DC CPU I had to set explorer's affinty to only 1 CPU for it to work, tried doing that for JV, but no different. But it was under XP before, not Vista. There was some kind of timing error that caused XMP to bomb out, jsut wondering if mayeb this was the same?
 
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.
Top