Jump to content
IGNORED

jzintv Christmas update


intvnut

Recommended Posts

Not to go off on a tangent here, but are there any future plans for adding in filters like "CRT" or "scan lines" to emulate the effects? I know JzIntv was always built to be a top-notch true emulator of the Iintellivision core, which it is, but because it's also heavily used in Retropie and other forms of emulation, it could definitely benefit from these filters. Leaving it open for the user to create and add-in their own filters would be great as well. Many other true system emulators use them as well... Stella, CC64, Vice-64, just to name a few I've seen it in.

 

I don't have immediate plans for a "scanlines" mode. I could probably hack something up that would look "OK". I need to transition to SDL2 first, I think. Likely, the most efficient way to do this on a modern machine would be to define a layer with the scanline template, and then superimpose that over the layer with the graphics. That lets the hardware acceleration do all the dirty work for me.

 

jzIntv currently uses SDL1 and pure software rendering. SDL1 has been deprecated for awhile, and has noticeable performance issues on modern hardware. Too many SDL1-isms leaked into the rest of jzIntv, so I have my work cut out for me.

 

I've also had someone request a libretro backend. That would give me access to whatever functionality libretro provides.

 

All of this will have to be in my "copious free time." Or if folks would like to take some of this on and help me refactor jzIntv and modernize it, I'd be happy to accept patches and assistance. jzIntv already has direct contributions from around 9 other authors, not counting the library code jzIntv incorporates.

 

 

Thanks... PS... loving the new color palette. After some tweaks to my LED screen, it looks amazing and exactly as I remember it on a CRT. Very bright and vivid, not desaturated as it was before this new update. Thanks for that!

 

I'm glad you like it! Congo Bongo in particular was the hardest one to get looking "good." The way it uses yellow, tan, orange, and brown really highlighted flaws in my older palette.

 

 

You hackfile combos work BEAUTIFULLY!!! THANK YOU!!!! All the keys now "copy/paste" from notepad into jzIntv correctly

 

Great! I'll include this "hackfile" as a reference in the next jzIntv release.

Link to comment
Share on other sites

In appreciation of the ability to SAVE and LOAD in ECS mode, I am sharing ECS Basic files created from basic code at The Intellivision Library.

 

ecs_tape_collection.zip

 

contains the following ECS Basic programs:

 

BMB1 = Bomb Run I

CHAS = Chaos
LIFE = Inty Life
ROAD = Road Race
SSEZ = Simon Says

To use, place the files where jzIntv.exe is.

Start up ECS Basic.

At the basic prompt, type: CLOD name of game

Example: CLOD SSEZ

 

When prompted SET and READY, switch to controller mode and press an arrow key (DISC on controller) and the file should load. Type RUN then press the enter key.

 

Thank you IntvNut for making these functions available!!!!

 

  • Like 3
  • Thanks 1
Link to comment
Share on other sites

n00b question: I have the jzINTV 1.0 with the GUI. I downloaded the new version, but I am unsure how to integrate it with the GUI. Is this possible?

 

Which GUI? There was a launcher Arnauld wrote a long time ago for jzIntv 1.0 beta 4. There's also the LTO Flash GUI which doubles as a launcher for jzIntv now.

 

I believe intvsteve is working on an update for the LTO Flash GUI that will incorporate the latest jzIntv.

 

Believe it or not, jzIntv hasn't actually reached a proper 1.0 release. I should do that someday. Maybe on its 20th anniversary. ;-)

Link to comment
Share on other sites

jzIntv history: I discovered I had an old CVS repo with the earliest versions of jzIntv. Speaking of its 20th anniversary, the CVS repo log starts with this message:

.

revision 1.1.1.1
date: 1998-12-27 22:56:46 -0600;  author: im14u2c;  state: Exp;  lines: +0 -0;
Re-importing after hd crash.

.

I know I'd started playing with Intellivision emulation in the 1997 - 1998 timeframe. It was slow going at first. I got a (non-working) Intellivision from a shop in Lewisville, TX, and spent a bit of time reverse-engineering the first IntelliPaks. I eventually got in touch with William Moeller and got a copy of De Re Intellivision and Carl Mueller Jr's dev kit.

 

A few months later:

.

revision 1.2
date: 1999-03-08 04:52:15 -0600;  author: im14u2c;  state: Exp;  lines: +3 -0;
Actually booting a cartridge to the title screen!  Yay!

.

I tagged jzintv-009 on my birthday in 1999:

.

revision 1.8
date: 1999-08-29 23:58:21 -0500;  author: im14u2c;  state: Exp;  lines: +4 -4;
Release 009

.

That was the first version of jzIntv to escape the lab, if memory serves. I believe it went up on Freshmeat. (Anyone here remember Freshmeat?) August 29th is my birthday. So, Release 009 was tagged on my birthday, nearly 20 years ago.

 

I nominate my birthday this year to be the 20th anniversary of jzIntv. And, as such, the official planned release date of jzIntv 1.0.

Edited by intvnut
  • Like 6
Link to comment
Share on other sites

 

Which GUI? There was a launcher Arnauld wrote a long time ago for jzIntv 1.0 beta 4. There's also the LTO Flash GUI which doubles as a launcher for jzIntv now.

 

I believe intvsteve is working on an update for the LTO Flash GUI that will incorporate the latest jzIntv.

 

Believe it or not, jzIntv hasn't actually reached a proper 1.0 release. I should do that someday. Maybe on its 20th anniversary. ;-)

 

 

If this is windows you can try copying the jzintv.exe file and any dll files over.

@intvnut: It is just called jzintvGUI.exe (see below). I don't have the LTO flash cart. No typical "about" tab or "readme" for the origin with it.

 

@mr_me: Thanks. I was thinking about something like this, but wasn't sure what all needed to be copied over, or if some of the old files would downgrade the newer version, since in my original download, jzintv and the GUI were all lumped together. It sounds like jzintv and the GUI are developed independently, so I'll try your advice.

post-54985-0-74261000-1547664126.png

Link to comment
Share on other sites

 

 

@intvnut: It is just called jzintvGUI.exe (see below). I don't have the LTO flash cart. No typical "about" tab or "readme" for the origin with it.

 

@mr_me: Thanks. I was thinking about something like this, but wasn't sure what all needed to be copied over, or if some of the old files would downgrade the newer version, since in my original download, jzintv and the GUI were all lumped together. It sounds like jzintv and the GUI are developed independently, so I'll try your advice.

 

I believe that's Arnauld's GUI. It's not 100% up to date w/ the latest jzIntv, but should work for most things. As mr_me said, you can try copying in the EXE and all DLLs.

 

Also, you don't need LTO Flash to use the LTO Flash GUI with jzIntv. The GUI is a bit heavier than Arnauld's launcher, though, since it does include all the LTO Flash support as well.

Link to comment
Share on other sites

The libretro backend would be fantastic, as it would make using Jzintv so much easier on Retropie.

 

My small suggestion would be to also incorporate an overlaid keypad through a button press like lr-freeintv does. That makes playing Intellivision on Retropie SO much more accessible to people.

 

Regardless, Jzintv is incredible. Thanks so much for continuing to support it.

 

Sent from my Pixel 2 using Tapatalk

Link to comment
Share on other sites

The libretro backend would be fantastic, as it would make using Jzintv so much easier on Retropie.

 

My small suggestion would be to also incorporate an overlaid keypad through a button press like lr-freeintv does. That makes playing Intellivision on Retropie SO much more accessible to people.

 

Regardless, Jzintv is incredible. Thanks so much for continuing to support it.

 

Are there publicly available (and shareable) bitmaps for the overlays? I've thought about providing a mechanism to overlay control information into the display someday (in my copious free time), but that's a lot of work on its own.

 

Part of me wants to just make a libjzintv that provides the core, and maybe some libs that provide jzIntv conduits to backends, and invite folks w/ more UI experience to create wrappers around that to address various use cases. Right now, jzIntv is a bit too monolithic. I think I've also proven that I'm not a skilled UI developer on modern systems. :)

 

(intvsteve, OTOH, made a world-class interface for LTO Flash!, IMHO.)

  • Like 2
Link to comment
Share on other sites

Not sure about freeintv displaying overlays but images could be user supplied just as rom files are. Freeintv does display a virtual keypad. It's required because there's no other way to select/map a keypad button to a physical button. It only allows one intellivision keypad button to be mapped. One good feature of freeintv is a controller swap function. That's for games that specifically require the left or right controller. It also lets you start auto racing if you only have one controller (and no keyboard). Libretro also offers the potential of "netplay" and multiplayer play over the internet. Unfortunately, freeintv doesn't support that feature.

 

An os independent jzintv file/open menu and a help menu with the -help contents in a help file would go a long way. Retropie needs some basic default jzintv settings to make it more useable out of the box. E.g. default resolution, default button mapping file

Link to comment
Share on other sites

Yeah, I was referring to the numeric keypad that Freeintv has. It isn't a perfect solution, but it makes playing Intellivision using a standard gamepad much, much more accessible.

 

I also agree that the controller swap feature can be quite useful.

 

Sent from my Pixel 2 using Tapatalk

Link to comment
Share on other sites

Not sure about freeintv displaying overlays but images could be user supplied just as rom files are. Freeintv does display a virtual keypad. It's required because there's no other way to select/map a keypad button to a physical button. It only allows one intellivision keypad button to be mapped. One good feature of freeintv is a controller swap function. That's for games that specifically require the left or right controller. It also lets you start auto racing if you only have one controller (and no keyboard). Libretro also offers the potential of "netplay" and multiplayer play over the internet. Unfortunately, freeintv doesn't support that feature.

 

An os independent jzintv file/open menu and a help menu with the -help contents in a help file would go a long way. Retropie needs some basic default jzintv settings to make it more useable out of the box. E.g. default resolution, default button mapping file

 

Some of that (the file/open aspect) is covered by the LTO Flash GUI. Obviously, that doesn't fit with the RetroPie model. jzIntv also does have something resembling the controller swap option ('map 1', aka F5). It's enough at least to get Auto Racing going with just the keyboard.

Link to comment
Share on other sites

Yes, I've set up a mapping file with map 1 flipping the left/right controllers.

 

Most people will just use bliss or the nostalgia emulator rather than installing more software for jzintv. Retropie just needs the command line interface, and better default settings.

Link to comment
Share on other sites

It would be great if someone would write a decent GUI or how about the authors do it. After all this is the 21st century and DOS is dead.

Bliss was on the right track and I have no idea where the guy went but I have the older version of 2600-daptor or some deal that uses 2600, Intellivision and Colecovision controllers but nothing maps the keys well outside of MESS/MAME

 

 

It is time to break free of this old school programing and move into the modern era and I don't mean Java

Link to comment
Share on other sites

It would be great if someone would write a decent GUI or how about the authors do it. After all this is the 21st century and DOS is dead.

 

Bliss was on the right track and I have no idea where the guy went but I have the older version of 2600-daptor or some deal that uses 2600, Intellivision and Colecovision controllers but nothing maps the keys well outside of MESS/MAME

 

 

It is time to break free of this old school programing and move into the modern era and I don't mean Java

 

jzIntv hasn't run on MS-DOS in about 20 years—ever since I moved off the Allegro library.

 

Anyway, I'm sorry you're unhappy. I'll issue a full refund.

  • Like 3
Link to comment
Share on other sites

It would be great if someone would write a decent GUI or how about the authors do it. After all this is the 21st century and DOS is dead.

 

Bliss was on the right track and I have no idea where the guy went but I have the older version of 2600-daptor or some deal that uses 2600, Intellivision and Colecovision controllers but nothing maps the keys well outside of MESS/MAME

 

 

It is time to break free of this old school programing and move into the modern era and I don't mean Java

 

What would the features of such a GUI be? There are many highly variable opinions on that.

 

I haven't tried Bliss in ages. Are you talking about a generic front end for N emulators, or jzIntv specifically?

Link to comment
Share on other sites

  • 1 year later...

Hi, I'm a little late ?

I finally resurrected ALL the ports projects I opened (and never closed..) in these years, in order to centralize them in a single big project cross platform (pc, wii, android and switch), with a gui.

For the moment I'm using a ridicoulous 'debug gui' written in LIBSDL(see attachment..) , my plans are to replace it with something serious, like imgui (https://github.com/ocornut/imgui), which seems to work on android and switch too. It's very easy to manage, and very powerful.

 

For the wii, there will be a lot of work to do..later.

 

image.thumb.png.1404460544c8f17e1e23f9bcf34e4393.png

 

 

I migrated latest jzintv sources to LIBSDL2, quiet easily, but I have a last issue I cannot fix, at the moment.

The Keycode management of SDL2 prevents jzintv to allocate enough space for the event management, I'm working on some workarounds but for the moment without a good solution.

 

Do some of you already migrated them to libSDL2 and can help me?

 

 

Link to comment
Share on other sites

4 hours ago, jenergy said:

I migrated latest jzintv sources to LIBSDL2, quiet easily, but I have a last issue I cannot fix, at the moment.

The Keycode management of SDL2 prevents jzintv to allocate enough space for the event management, I'm working on some workarounds but for the moment without a good solution.

 

Do some of you already migrated them to libSDL2 and can help me?

Hey, could you send me the SDL2 changes you made?  I've had SDL2 in my "to-do" list for quite awhile, and perhaps this will get me off my butt to actually do it.  I can merge your changes into my current tree, or tweak them as needed.

 

For SDL2 event management, that really is the sticking point.  I will need to create a sparse structure to decode SDL2 events, and do some work at runtime to create a hash or similar structure.

Link to comment
Share on other sites

Hello Joe, nice to read you again.

Of course, here in attachment there's my whole work-in-progress sources project, but you should be able to see only differences with your code.

The problem begins with declaration static const char *idx_to_name[EVENT_LAST]; in file event_sdl.c

While "EVENT_LAST" value in LIBSDL1 is something like 3190, in LIBSDL2 value is 1073744781, and that's because of the different way to assign event values in SDL_Keycode.h. Non ascii values are 'stored' starting with an offset of 2^30.

Example:

SDLK_CAPSLOCK = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_CAPSLOCK),

where:

#define SDLK_SCANCODE_MASK (1<<30)
#define SDL_SCANCODE_TO_KEYCODE(X)  (X | SDLK_SCANCODE_MASK)

 

This causes errors in compilation:

size of array 'idx_to_name' exceeds maximum object size '2147483647'
   79 | static const char *idx_to_name[EVENT_LAST];
      |                    ^~~~~~~~~~~

....

....
integer overflow in expression of type 'int' results in '11828' [-Woverflow]
  131 |     event->mask_tbl[0]      = CALLOC(event_mask_t, EVENT_LAST * 4);
      |                                                               ^
                                              
^
      

By replacing manually 1<<30, for example with 1<<20, compilation is ok and games start, but as you can imagine with VERY huge amount of allocated memory, and events are not recognized, with the code as is.

 

jzintv-20181225-LIBSDL2.src.zip

  • Like 1
Link to comment
Share on other sites

On 1/9/2019 at 1:09 AM, intvdave said:

In appreciation of the ability to SAVE and LOAD in ECS mode, I am sharing ECS Basic files created from basic code at The Intellivision Library.

 

ecs_tape_collection.zip 3.52 kB · 51 downloads

 

Thank you IntvNut for making these functions available!!!!

 

Man!  This is a trip down memory lane.  I fired up Triple Action and loaded Bomb Run I, thinking it was Bomb Run II.  That 1998 date - so many mistakes I'd love to correct if I could go back to that year.

 

I just tried out the ECS tape feature with my beloved "Heat Seeking Bombs" program in Mr. BASIC Meets Bits & Bytes, after making a couple tweaks.  This is just what jzintv needed!  Another big thank you to @intvnut for adding that feature.

 

Maybe I'll play the Number Cruncher games too.  One of them was kind of fun I remember.  I'll get the rest of these made into ECS tapes and post them as well.

Link to comment
Share on other sites

Just a quick update:  I have basic SDL2 support working, except for events of course.  I didn't use jenergy's SDL2 code as-is, but I used it as a starting point.  That was very helpful.  Thanks!

 

One piece of good news is that SDL2 performs way better on modern Macs than SDL1.  Buttery smooth 60Hz on my Retina display.  With SDL1, it was dropping a huge number of frames on the built-in Retina display, and only managed 60Hz in full screen, or on my secondary display.

 

I have some ideas on how to handle SDL2 events.  I won't get to it until tomorrow, though.  I have other things going on today.

  • Like 1
Link to comment
Share on other sites

16 hours ago, intvnut said:

Just a quick update:  I have basic SDL2 support working, except for events of course.  I didn't use jenergy's SDL2 code as-is, but I used it as a starting point.  That was very helpful.  Thanks!

 

One piece of good news is that SDL2 performs way better on modern Macs than SDL1.  Buttery smooth 60Hz on my Retina display.  With SDL1, it was dropping a huge number of frames on the built-in Retina display, and only managed 60Hz in full screen, or on my secondary display.

 

I have some ideas on how to handle SDL2 events.  I won't get to it until tomorrow, though.  I have other things going on today.

Great! Waiting for your changes

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