Jump to content
IGNORED

jzintv on newer macs running mojave


ColecoJoe

Recommended Posts

Hello,

I was wondering if anybody with a new Mac has had any problems running JZINTV? All my other macs with older hardware running Mojave runs the emulator with no issues but my work computer gives me the following error:

HALT! PC=0049 Instr =         63 MS =         57

 

I'm not running anything crazy just a real basic rom launch :

./jzintv -z3 ../rom/cvdemo.rom

 

I've deleted and reinstalled SDL but no luck. I have also created a new profile to see if that was the issue but have the same problem.

 

Not a big deal since I have options, it's just been bugging me :)

 

My Mac's specs:

 

 

 

post-53348-0-19829200-1549990931.png

Link to comment
Share on other sites

Which version of jzintv are you using?

 

Until very recently, all versions of jzintv have been 32-bit, and I know Apple has been suggesting dropping 32-bit app support for some time. I thought that day had not come yet.

 

That said, a 64-bit build of jzintv has been made - not sure if it's been released yet. I also hope to have an udpated LTO Flash! UI software release soon, which would include the 64-bit version of jzintv. LUI itself as a 64-bit app is still not officially released, though it's possible a tester or two has it.

  • Like 1
Link to comment
Share on other sites

Jzintv windows is still 32-bit and jzintv linux has been 64-bit for some time. SDL 1.2 for windows and linux have both 32bit and 64bit downloads. Both jzintv and SDL for mac don't say if they're 32-bit or 64-bit. While SDL and jzintv should match 64bit or 32bit; the front-end shouldn't matter.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Which version of jzintv are you using?

 

Until very recently, all versions of jzintv have been 32-bit, and I know Apple has been suggesting dropping 32-bit app support for some time. I thought that day had not come yet.

 

That said, a 64-bit build of jzintv has been made - not sure if it's been released yet. I also hope to have an udpated LTO Flash! UI software release soon, which would include the 64-bit version of jzintv. LUI itself as a 64-bit app is still not officially released, though it's possible a tester or two has it.

 

Sorry I wasn't notified that you responded to me ... I'm using the latest one on the website. Strangely enough I was trying to setup jzintv on a PC for a friend and I am getting similar halt errors and that's a 64bit machine.

Link to comment
Share on other sites

I haven't upgraded my Mac to Mojave yet. If you're willing to share that ROM with me, please contact me via email (intvnut@gmail.com)

 

As mr_me says, I don't really monitor AtariAge forums very closely at all, and when I do, it's usually just the programming forum.

Hey Joe, thanks for responding.

I actually got it to work this weekend. For some reason I always thought you had to put the bios files in the rom directory but I moved them to where the jzintv binary is located and now the games play!

Link to comment
Share on other sites

I actually got it to work this weekend. For some reason I always thought you had to put the bios files in the rom directory but I moved them to where the jzintv binary is located and now the games play!

 

On windows and Linux, jzintv finds the exec/grom files in the "rom" subfolder. It doesn't on Macs for whatever reason, unless you add the search path.

 

When it can, jzIntv tries to discover the directory where the jzIntv executable is. It then appends "../rom" to that and adds it to the ROM search path.

 

Discovering the executable's directory is an inherently OS-specific problem. Currently, I do the following on macOS:

.


    /* -------------------------------------------------------------------- */
    /*  MacOS X: _NSGetExecutablePath supposedly gets *a* path to our       */
    /*  executable.  Then, readlink() should get us the executable itself.  */
    /* -------------------------------------------------------------------- */
#ifdef PLAT_MACOS
    {
        char *gep_buf;
        uint_32 gep_buf_size = MAX_CWD_PATH - 1;

        gep_buf = CALLOC(char, MAX_CWD_PATH);
        if (!gep_buf)
            goto macosx_fail;

        // Try to get the executable path
        if ( _NSGetExecutablePath(gep_buf, &gep_buf_size) != 0 )
            goto macosx_fail;

        // Documentation doesn't say whether path is NUL terminated, to add
        // a NUL terminator just to be sure.
        gep_buf[gep_buf_size] = 0;

        // Resolve the symlinks (if any)
        new_exe_path = resolve_link(gep_buf);

        if (new_exe_path)
        {
            free(gep_buf);
            goto got_exe_path;
        }

macosx_fail:
        CONDFREE(gep_buf);
    }
#endif

.

At least for me under macOS 10.13, this seems to work. I haven't tried it under Mojave (10.14) yet.

 

If you try to load a game that doesn't exist, jzIntv will print out all of the directories it searched:

.

Could not find any of these candidate files:
  nonexistent.bin

Search path:
  .
  /Users/intvnut/proj/emu/src/jzintv/bin/../rom

ERROR:  Failed to initialize game

.

As you can probably guess, jzintv lives in /Users/intvnut/proj/emu/src/jzintv/bin on my Mac. And, jzintv did seem to add /Users/intvnut/proj/emu/src/jzintv/bin/../rom to my search path.

 

Could someone with 10.14 try this experiment and see what jzIntv prints out for its search path? That is, try to run a game that doesn't exist, and see what search path jzIntv prints out.

Link to comment
Share on other sites

 

den:jzintv den$ ./jzintv -z3 rom/nogame.rom
AVI: 1.000 1.000 1.000

Could not find any of these candidate files:
  rom/nogame.rom

Search path:
  .
  /Applications/jzintv/./../rom

ERROR:  Failed to initialize game
den:jzintv den$ 

 

 

Are you running that from within jzIntv's "bin" directory? (e.g. jzintv/bin) Or did you flatten the jzIntv directory tree in some way?

 

Usually, jzIntv has a number of directories under it. I just unpacked the jzintv-20181225-osx archive and ran the following:

.

intvnut@wei-wu-wei:~/jzintv-20181225-osx[1]$ ls -1F
ReleaseNotes_20181225.txt
bin/
doc/
examples/
rom/
intvnut@wei-wu-wei:~/jzintv-20181225-osx[1]$ cd bin
intvnut@wei-wu-wei:~/jzintv-20181225-osx/bin[1]$ ./jzintv notfound.rom
AVI: 1.000 1.000 1.000
file_read_rom16: No such file or directory
ERROR:  Could not read EXEC image 'exec.bin'


Search path:
  .
  /Users/intvnut/jzintv-20181225-osx/bin/./../rom

.

Notice how there's an additional "bin" in that path that's not present in yours.

 

And, of course, it didn't find exec.bin because I hadn't copied it in there. That raises the other question: When jzIntv crashed on you before, was it finding some other files named exec.bin and grom.bin? jzIntv should refuse to start if it can't find them.

Edited by intvnut
Link to comment
Share on other sites

I usually remove everything and leave only the binary and the rom folder ...

 

 

Normally, the executable is in a bin subfolder. Maybe that's why it's not finding ../rom/ .

 

Ah, that's why, then. jzIntv expects the directory layout it was distributed with.

 

You can always set the environment variable JZINTV_ROM_PATH to point to where your game ROMs are. Under macOS, you can separate path components with colons (similar to PATH), if your ROMs are stored in multiple directories.

 

I was wondering why you gave the game's name as "rom/foo" instead of just "foo".

Link to comment
Share on other sites

I always have to look this sort of thing up ... but at a command prompt terminal window it's likely something like this:

export JZINTV_ROM_PATH=/the/path/you/put/your/roms/in

Thing I can never remember is if that sets it permanently for all future terminal windows, or only for the one you're in at the time.... Or if it's the 'set' command and not 'export'....

 

You want to set an environment variable to the path your ROMs are in. I think you can have multiple paths, but the separator between paths may be platform-dependent... Another thing I always need to look up.

 

EDIT: This may help: http://osxdaily.com/2015/07/28/set-enviornment-variables-mac-os-x/

 

It's focused on the existing PATH environment variable. Stay away from altering that one unless you're certain about what you're doing, of course. But in the examples there, just use JZINTV_ROM_PATH instead of PATH and that should get you started.

  • Like 1
Link to comment
Share on other sites

I always have to look this sort of thing up ... but at a command prompt terminal window it's likely something like this:

export JZINTV_ROM_PATH=/the/path/you/put/your/roms/in

Thing I can never remember is if that sets it permanently for all future terminal windows, or only for the one you're in at the time.... Or if it's the 'set' command and not 'export'....

 

You want to set an environment variable to the path your ROMs are in. I think you can have multiple paths, but the separator between paths may be platform-dependent... Another thing I always need to look up.

 

EDIT: This may help: http://osxdaily.com/2015/07/28/set-enviornment-variables-mac-os-x/

 

It's focused on the existing PATH environment variable. Stay away from altering that one unless you're certain about what you're doing, of course. But in the examples there, just use JZINTV_ROM_PATH instead of PATH and that should get you started.

Awesome! Thanks, I'll check this out later tonight!

Link to comment
Share on other sites

I always have to look this sort of thing up ... but at a command prompt terminal window it's likely something like this:

export JZINTV_ROM_PATH=/the/path/you/put/your/roms/in

Thing I can never remember is if that sets it permanently for all future terminal windows, or only for the one you're in at the time.... Or if it's the 'set' command and not 'export'....

 

I add that line to my .bashrc file (in your $HOME directory), so that it gets run every time I start a new shell. That's the place to set it if you use bash (the default).

 

If you're a csh/tcsh user, then it's spelled:

.

setenv JZINTV_ROM_PATH /path/to/roms

.

and that goes in your .cshrc file in your $HOME directory.

 

I personally put jzIntv's 'bin' directory in my $PATH. And, because I'm a space cadet, I put my jzintv development version in my $PATH, so I'm always using the most recent compile of jzIntv. I figure it's the best way to force me to fix any bugs I come across. ;)

Link to comment
Share on other sites

 

I add that line to my .bashrc file (in your $HOME directory), so that it gets run every time I start a new shell. That's the place to set it if you use bash (the default).

 

If you're a csh/tcsh user, then it's spelled:

.

setenv JZINTV_ROM_PATH /path/to/roms

.

and that goes in your .cshrc file in your $HOME directory.

 

I personally put jzIntv's 'bin' directory in my $PATH. And, because I'm a space cadet, I put my jzintv development version in my $PATH, so I'm always using the most recent compile of jzIntv. I figure it's the best way to force me to fix any bugs I come across. ;)

 

I just wrote a GUI to call it. :P

  • Like 1
Link to comment
Share on other sites

 

I add that line to my .bashrc file (in your $HOME directory), so that it gets run every time I start a new shell. That's the place to set it if you use bash (the default).

 

If you're a csh/tcsh user, then it's spelled:

.

setenv JZINTV_ROM_PATH /path/to/roms

.

and that goes in your .cshrc file in your $HOME directory.

 

I personally put jzIntv's 'bin' directory in my $PATH. And, because I'm a space cadet, I put my jzintv development version in my $PATH, so I'm always using the most recent compile of jzIntv. I figure it's the best way to force me to fix any bugs I come across. ;)

 

Well duh, never thought of doing that .. thanks for the tip :)

Link to comment
Share on other sites

As in you just wrote it right now or did I miss something :)

 

The LTO Flash! User Interface Software includes a copy of jzintv -- or you can configure it to point to any other version of your choosing. You can then right click (or double-click - depends) on a ROM in the ROM list (left hand side) and run it in jzintv.

 

In fact, a substantial chunk of the UI was something I wrote just to interface with jzintv at least two years before that project (LTO Flash!) ever started.

  • Like 2
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...