Jump to content
IGNORED

JZINTV and Raspberry Pi


dalves

Recommended Posts

So I think I might have got it working....

 

; -----------------------------------------------------------------------------------------
map 0 ;
; -----------------------------------------------------------------------------------------
; joystick #0 - left controller
JS0_BTN_16 QUIT
JS0_BTN_13 PD0L_A_T
JS0_BTN_15 PD0L_A_L
JS0_BTN_14 PD0L_A_R
JS0_BTN_03 PD0L_KPE
JS0_BTN_00 PD0L_KP1
JS0_BTN_10 PSH3
; -----------------------------------------------------------------------------------------
map 3 ;
; -----------------------------------------------------------------------------------------
JS0_BTN_12 PD0L_KP4
JS0_BTN_13 PD0L_KP2
JS0_BTN_14 PD0L_KP3
JS0_BTN_15 PD0L_KP5
JS0_BTN_10 PSH0
In this config, as soon as I release BTN_10 it goes back to map 0
  • Like 1
Link to comment
Share on other sites

Yes, you needed another push action in MAP 3. Although the documentation would have you put the exact same line in MAP 3.

 

JS0_BTN_10 PSH3

 

I guess it doesn't matter since it's popping back to the previous map either way.

Edited by mr_me
Link to comment
Share on other sites

 

And it worked where if I hit BTN_10 + BTN_13 I got KP2 using the Zcontroller_test.
But then I would have to hit F5 on my keyboard to make BTN_13 be PD0L_A_T again.

Is there a way to only temporarily have that button mapped while I hold down BTN_10 and then it reverts back to map 0 when I release the button?

 

 

OK, this is counterintuitive: You need to map JS0_BTN_10 in both MAP 0 and MAP 3. The button-release event will get processed when you're in map 3, and will use whatever binding you have on JS0_BTN_10 in map 3.

.

; -----------------------------------------------------------------------------------------
map 0      ; activate with F5
; -----------------------------------------------------------------------------------------
 
; joystick #0 - left controller
 
JS0_BTN_13 PD0L_A_T
JS0_BTN_15 PD0L_A_L
JS0_BTN_14 PD0L_A_R
JS0_BTN_00 PD0L_KP1
JS0_BTN_03 PD0L_KPE
JS0_BTN_10 PSH3
 
; -----------------------------------------------------------------------------------------
map 3      ; 
; 
JS0_BTN_12 PD0L_KP4
JS0_BTN_13 PD0L_KP2
JS0_BTN_14 PD0L_KP3
JS0_BTN_15 PD0L_KP5
JS0_BTN_10 PSH3      ; <--- add this

.

 

 

 

Can you post an example on how to set the flag ... I'm nothing more than a hack over here :)

 

I don't know the process for adding flags with respect to any of the various front-ends, since I don't use them.

 

However, if you can find where the flags for jzIntv are specified, you can add the flag -b10 or -b20 to the list of flags. 10 means "add a 10% border around the window", while 20 means "add a 20% border". You can try other sizes as well.

 

Now, if the output display has to be a particular resolution to display properly on your TV, then we have to bust out some math, and provide a second flag to force jzIntv's resolution.

  • Like 1
Link to comment
Share on other sites

With retropie I think you'll find the command to launch jzintv at the location below. Just put the switch anywhere after the jzintv command. Separate all switches with spaces.

 

/opt/retropie/configs/intellivision/emulators.cfg

Edited by mr_me
  • Like 1
Link to comment
Share on other sites

You can tell jzIntv to add a thicker border all around to make the effect less noticeable with the -b flag. (I see mr_me mentioned that a few minutes ago as well.) Something in the range -b10 to -b20 works pretty well.

 

 

 

 

I don't think it's correct to say that the TV shifts the image to the left. Rather, it's just less noticeable on a TV due to the larger border displayed there. If I toggle the left border on/off the rest of the image stays put

 

 

I am interested to try this, but wondering if there is a specific place I need to enter the -b flag in the retropie config I'm using. Below is what I currently have. I didn't know if I would add it between the -z1 and -p?

 

jzintv = "/opt/retropie/emulators/jzintv/bin/jzintv -z1 -p /home/pi/RetroPie/BIOS -q %ROM%"

default = "jzintv"

 

  • Like 1
Link to comment
Share on other sites

The order of the switches don't matter. You could even put it after the rom filename.

That is true, but just to be extra thorough, I'll just mention that some of those switches take a parameter, like a path, etc.; and those need to be followed specifically by their parameters.

 

The order of all the options themselves (whether parametized or not) is not important.

Link to comment
Share on other sites

 

When I add the -b10 or 20 flag non of my roms will open.

 

This is what I have.

jzintv="/opt/retropie/emulators/jzintv/bin/jzintv -v1 --kbdhackfile=/opt/retropie/emulators/jzintv/hackfile.cfg -f1 -q -z800x600  %ROM%"
Make sure you are using a recent build of jzIntv that supports the -b flag. It was added in the last year, I think.
  • Like 1
Link to comment
Share on other sites

 

Ahh, that makes sense. I'm using a Byte Knight flashback.

retropie does not i stall the latest version either. Download the new one from jzintvs website. To install on the pi you need to have root user permissions as the /opt/retropie/emulators/jzintv/ folder and its contents belong to user root and not user pi. Then you need to use a program like winscp to put it on the pi.
Link to comment
Share on other sites

  • 2 weeks later...

So I upgraded the old version of jzintv that was on my Raspberry Pi with the newest Linux version from the website. The -b setting looks great and it now looks like what I am used to seeing with Intellivision games.

 

That said, all the games load and play great with the exception of the Intellivoice games and Space Patrol. With the updated jzintv files, they won't run. If I use the older jzintv files, the intellivoice games and Space Patrol work perfectly. I'm trying to figure out what I may be missing with the upgrade.

Edited by dalves
Link to comment
Share on other sites

I can't imagine anything missing. Even if intellivoice was disabled intellivoice games would still run. Space Patrol and jzintv were written by the same guy. One thing to check with linux systems is that any rom cfg file extensions are lowercase.

 

Test with the old jzintv executable, then test with the new executable without the /b switch. Did you make any other changes to the command other than the /b switch. Maybe post the contents of your intellivision/emulators.cfg file. Ideally we'd want to see the jzintv error message.

Edited by mr_me
Link to comment
Share on other sites

So I upgraded the old version of jzintv that was on my Raspberry Pi with the newest Linux version from the website. The -b setting looks great and it now looks like what I am used to seeing with Intellivision games.

 

That said, all the games load and play great with the exception of the Intellivoice games and Space Patrol. With the updated jzintv files, they won't run. If I use the older jzintv files, the intellivoice games and Space Patrol work perfectly. I'm trying to figure out what I may be missing with the upgrade.

 

I noticed that the Intellivoice games launch in ECS mode for some reason with the newer version. My guess is that you don't have the ECS.BIN file and so it won't run. Try adding "-s0" to your command line to turn off ECS.

  • Like 1
Link to comment
Share on other sites

I feel I've almost got it... When I added "-s0" to the command line, then none of my Intellivision ROMS would launch. I found the ecs.bin file on my computer and added it to my Raspberry Pi. Now my Intellivision ROMS work. I removed the "-s0" line and the Intellivoice games launch in ESC mode. If I add the "-s0" back to the command line, the games now load directly. Space Patrol works fine, and the Intellivoice games launch. However none of the Intellivoice games have the Intellivoice voices. There is still sound in those games, but it's missing the voices. I do have the "exec.bin, grom.bin, ivoice.bin, and ecs.bin in the Retropie BIOS folder. Just as a heads up, below is the config lines I currently have.

 

jzintv = "/opt/retropie/emulators/jzintv/bin/jzintv -z1 -b10 -p /home/pi/RetroPie/BIOS -q %ROM%"
default = "jzintv"

Link to comment
Share on other sites

Add the -v1 switch; that turns on the intellivoice. Looks like jzintv is not correctly identifying these rom files as intellivoice rom files. The switch would be needed for any new intellivoice games that comes out anyway. The ivoice.bin file isn't used by jzintv.

Edited by mr_me
Link to comment
Share on other sites

Newer versions of the tools are doing a lot more work with ROM metadata picked up from the .cfg files. I haven't looked at how jzintv is interpreting it and taking action based on it.

 

From what I gather, just doing the "ECS presence detect" in IntyBASIC programs may result in adding 'ecs = 1' to the [vars] section of the .cfg file produced by as1600. That means 'ECS is ​required​'. When bin2rom runs, that metadata is preserved in the .rom file. The recent updates to metadata features (starting in January) expand the notion of some of the settings:

 

ecs = 1 => ecs is REQUIRED

ecs = 0 => ecs is DO NOT CARE (TOLERATES)

 

The newer, preferred settings would be (I think...):

ecs_compat = 0 => INCOMPATIBLE

ecs_compat = 1 -> DO NOT CARE (TOLERATES)

ecs_compat = 2 => ENHANCES (e.g. Space Patrol gets 6-CH sound, similar for Deep Zone)

ecs_compat = 3 => REQUIRED (program will not function without ECS)

 

There is a similar mapping for Intellivoice, though voice = 1 should map to 'ENHANCES' -- I don't think there's a "REQUIRED" mapping.

 

Not as familiar w/ the Ultimate Flashback setup - mine's still a WIP at the moment, though it's using a pretty new build of jzintv as well.

 

So - you may be able to alter the .cfg files for the games that are causing trouble, too. If you have .rom files, then you'd have to do a rom2bin -> edit .cfg -> bin2rom round trip with the newer versions of those tools.

Link to comment
Share on other sites

  • 4 years later...
On 10/15/2018 at 11:36 AM, mr_me said:

Some cartridges have expanded borders even if it doesn't make use of scrolling; not sure why.

Use your debugger to turn off border extension in the universal data block and see.

 

On 10/15/2018 at 11:36 AM, mr_me said:

Space Armada might be using horizonal scrolling to animate the armada.

You just might be right about that. :) But if that's the case, how did Brooks keep the bunkers and the score from scrolling with the aliens? Magic!

On 10/15/2018 at 1:12 PM, mr_me said:

A real intellivision shifts the picture to the left. Try a real cartridge that doesn't expand the left border on a real intellivision with crt and you'll see.

Connect your Real Intellivision to a Real Man's Television Set made with vacuum tubes. That set will have horizontal and vertical position controls—use them to center your border-extended picture. Having established that, get Joe to fix his emulator to either (a) include player-operable picture positioning controls or, better yet, (b) center the picture automatically when borders are extended. Find comfort and justification in the certain knowledge that's what Harrower and Maine expected users of the day would do.

  • Like 1
Link to comment
Share on other sites

On 12/3/2022 at 8:11 AM, Walter Ives said:

You just might be right about that. :) But if that's the case, how did Brooks keep the bunkers and the score from scrolling with the aliens? Magic!

Not magic.  There's no score displayed while the Aliens are moving.  The three bunkers look like three sprites stretched 2x horizontally, they could move in the opposite direction of the background to appear stationary.  That's if it was done that way.

 

On 12/3/2022 at 8:11 AM, Walter Ives said:

Connect your Real Intellivision to a Real Man's Television Set made with vacuum tubes. That set will have horizontal and vertical position controls—use them to center your border-extended picture. Having established that, get Joe to fix his emulator to either (a) include player-operable picture positioning controls or, better yet, (b) center the picture automatically when borders are extended. Find comfort and justification in the certain knowledge that's what Harrower and Maine expected users of the day would do.

Is this a serious comment, that the engineers at GI expected users to adjust the horisontal hold on their TV to compensate for cartridges that use or don't use expanded borders.

Link to comment
Share on other sites

1 hour ago, mr_me said:

Not magic.  There's no score displayed while the Aliens are moving.  The three bunkers look like three sprites stretched 2x horizontally, they could move in the opposite direction of the background to appear stationary.  That's if it was done that way.


I think Mr. Ives was being cheeky in response to your speculation about the implementation.  I think we can easily determine how it was done by mere observation and deduction, as you (and others) have already done.

 

If I were to take a stab at guessing why the left border is extended on some games that do not scroll, I would submit that it's probably to:

  • cover sprite on-screen ingress and egress transitions, when the logical object is larger than a single MOB horizontally;
  • cover Color Stack advance transitions at the start of a line.
  • reduce the effective screen width by exactly one column so that the remaining space could be filled with whatever graphical elements fit in GRAM, while hiding the fact that there is not enough to fill the entire screen.

Christmas Carol uses horizontal delay and the left border on some game phases for precisely those three reasons.

 

For what it's worth, on that third reason, Christmas Carol also shifts the horizontal delay when extending the border on the left side, in order to center the screen and make it look like the artwork fits the entire display area.  It's the little details that count. *shrug*
 

 

1 hour ago, mr_me said:

Is this a serious comment, that the engineers at GI expected users to adjust the horisontal hold on their TV to compensate for cartridges that use or don't use expanded borders.


Why not?  I recall doing that back then on numerous occasions, not only for the Intellivision.  As I recall, tweaking the horizontal and vertical positions, and the color balance, were all de rigueur on color television sets, so it does not surprise me at all that it was part of the design and engineering assumptions. *shrug*

 

    dZ.

Edited by DZ-Jay
  • Like 2
Link to comment
Share on other sites

Yes, I think when the sprite is stretched 2x horizontally it will interfere with smooth entries and exits on the left side.  Could make a difference in a game like Shark Shark.

 

Edit:

Regarding centering the playfield.  The playfield shifting off-center in between extended and non-extended borders is more pronounced in Jzintv because the default borders are so thin.  Once thicker borders are added as it is with real hardware, the off-centering is less noticeable.  The GI engineers made sure the playfield fit either way on old TVs. I was imagining someone adjusting the horizontal hold every time they changed cartridges, which of course isn't necessary.

 

 

 

Edited by mr_me
  • Like 1
Link to comment
Share on other sites

3 hours ago, mr_me said:

Yes, I think when the sprite is stretched 2x horizontally it will interfere with smooth entries and exits on the left side.  Could make a difference in a game like Shark Shark.

 

Edit:

Regarding centering the playfield.  The playfield shifting off-center in between extended and non-extended borders is more pronounced in Jzintv because the default borders are so thin.  Once thicker borders are added as it is with real hardware, the off-centering is less noticeable.  The GI engineers made sure the playfield fit either way on old TVs. I was imagining someone adjusting the horizontal hold every time they changed cartridges, which of course isn't necessary.

 

 

 


I think the positioning controls are different from the vertical and horizontal hold controls.  The former aligns the field on the surface of the display, while the latter is to synchronize the oscillator that controls the activation of the beam.

 

At least, I think that’s how it is …

 

   dZ.

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...