Jump to content
IGNORED

Voyage: An Intv Journey (@Party Demo)


DZ-Jay

Recommended Posts

Hello everyone!

 

After being stuck in limbo for exactly three years, I'm happy to finally be able to share with everyone the Intellivision demo we created for the @Party 2017 demo-party in Boston, MA.  Back then, under pressure to complete it for the party, we made a bunch of compromises in the last minute crunch.  We always intended to continue work after the party, to clean up the effects and graphics, and polish the code.  We actually started that effort strong and then ... well ... life got in the way.

 

Three years later, reminded by a comment I saw around here, I dug up the old demo code to see the state we left it in.  It was a mess.  So, I spent this past week-end putting it all back together, cleaning up what I could, and fixing the most egregious bugs (which were many!), just to get it to a presentable state.  Along the way, I managed to get the crew back together, and we decided to continue working on it and finish our grand vision once and for all.

 

However, rather than leaving it to fate and risking limbo again, we all agreed that we should just release the working version we have now.  It's slightly improved from what we showed at the demo-party back in 2017, and much more stable; but still far, far from what we always thought it could be.

 

All that said, the journey continues ... Voyage: An Intv Journey will return some day, and better than ever!

 

 

My personal, most sincerest thanks go to all those who assisted in this effort -- most importantly, to all those who knowingly or unknowingly contributed by making their code, images, and other works available for us to use (or rip-off).

 

The ROM is attached to this post, included in "rom" and "bin+cfg" formats, for your convenience.  Below are a few comments and personal notes on the demo, for context.

 

A video to the very first edition, the one we played at the demo-party back in 2017 (and won an award!), can be found at the DemoZoo.  It is captured at 30Hz, so some detail is lost, but you can still appreciate the minor differences to the latest edition and listen to the cool music.

 

System Requirements:

  • Intellivision + LTO Flash! (best) ... or ... computer + jzIntv (second best)
  • ECS
  • Intellivoice

 

Instructions:

  • Run the demo (in hardware or emulation) and wait for the title screen.
  • Press any key to start the countdown, or wait 60 seconds for it to timeout automatically.
  • On the last part (the singing robot), press any key to return to restart the demo, or wait 120 seconds for it to timeout automatically.
  • Enjoy!

 

General Comments:

  • The demo runs better on an Intellivision and a CRT television set.  It works fine in emulation, but since it relies on video tricks like multiplexing, the 30Hz or 15Hz  effects may not look optimally on a computer monitor.
  • Beware of videos you see online!! They tend to play at 30Hz, which misses some of the most impressive multiplexing effects.
  • The music tracker takes advantage of six sound channels, so the ROM requires the ECS.
  • The Intellivoice is not strictly required, but it's a lot more fun with the robot voice sprinkled around, and you won't get the full intended effect without it.
  • Due to not having a graphics artist in the crew (and no time to do it ourselves), most of the graphics were ripped from great artists.  We'd like to thank moroz1999, diver, KACuk, Matisha, Riskej, and many more for their unbeknownst contributions. ;)
  • The project started ambitiously with various contributors, but some dropped off fairly quickly.  At the end, it ended up being the work of three people: @shazz from TRSI, Zapac (aka @carlsson), and myself (@DZ-Jay).
  • My involvement was mostly in the sequencer engine and music tracker enhancements.  As the resident Intv "expert" member, I took care of optimizing the engine, fixing bugs, and general micro-optimizations and cycle counting.  That's not to diminish the work of the others -- the most impressive parts were done by Shazz, and of course, the fabulous music by our excellent musician Zapac.
  • The music tracker is an enhanced version of Arnauld Chevallier's tracker, which I will release soon.  It was modified to add a few features such as support for ECS additional channels, play drums or noise in any of six channels, support more than 16 instruments, and a few other minor things.  I also fixed some bugs, tweaked some parts, and heavily optimized it overall to avoid dragging the sequenced effects.
  • Shazz, who started the project and single-handedly created the majority of the effects, was not very familiar with the Intellivision.  Because of this, the demo showcases mostly classic "old-school" effects, rather than playing to the specific strengths of the Intellivision.  Still, some of those effect are pretty impressive, nonetheless.

 

Demo Sequence:

  • Title Screen
    This is a classic "Mattel-style" Intellivision title screen.  Pressing any key will initiate the countdown to start the demo.
     
  • Mario In Inty-Land Intro
    A silly introduction section meant mostly as a joke for those who don't know what the Intellivision can actually do.
     
  • Journey Through The Stars
    A classic demo starfield with simulated parallax scrolling.
     
  • TRSI Logo
    A very cool spiraling effect introducing the TRSI logo, with a masked plasma view behind it.
     
  • Color Plasma
    A classic plasma effect in Color Stack mode done by cycling GRAM cards.  All calculations were pre-computed because we couldn't get a good plasma in real-time.
     
  • Flight Of The Butterfly
    A beautiful effect of an animated image zooming in and out at multiple levels.  When finally the butterfly is freed, it transitions nicely to the next part.
     
  • Shout-Outs
    A classic scroll-text effect multiplexing sprites at 30 Hz shouting out to some of our cool friends.  A bunch of people are included, even some from this very community. :)
     
  • Rocket Blast-Off
    The scroll-text is followed immediately by a rocket flying through the stars, with a 3D "bob" effect showing a few spheres circling around the rocket, in front and behind it.
     
  • ZX Spectrum Beam Projector Credits
    An attempt to draw a complex image on the screen, bypassing the 64 card limitations of GRAM.  The effect cycles four 4x6 blocks of graphics, each displaying a section of the full image at 15Hz.  While the multiplexed graphics attempt to race the STIC drawing the background without missing a single pixel, an animated credits scene plays in lockstep, synchronized to a cool six-channel tune.
     
  • Loving Robot
    A silly end to match the silly introduction.  A robot bobs around through a field of flying hearts while a weird rendition of the Titanic music plays in loving tribute of the Intellivision.  Like the "intro" section, this part was meant as a joke.  When you get tired of the silly tune, just press any key to restart the demo, or wait a minute and a half for it to timeout.

 

Sprinkled in-between the parts are a few title cards with bouncing bobs and robot voices.

 

Attached Files:

 

 

UPDATES:

  • 07-14-2020:  Updated ROM binary to the latest version, fixing an issue with memory initialization which could cause music to play incorrectly on hardware.
  • 08-09-2020:  Updated ROM binary to the latest version, fixing an issue in the tracker that caused drums to sound a bit "muddled."
  • 08-12-2020:  Updated ROM binary to the latest version, fixing and issue which caused the Intellivoice to crash half way through the demo.

 

Voyage - Title Screen.png

Edited by DZ-Jay
Fixed ROM binary (Intellivoice crash)
  • Like 16
  • Thanks 4
Link to comment
Share on other sites

8 minutes ago, nanochess said:

Couldn't resist making a video of it. Unfortunately Youtube dropped frames.

Nanochess, yes.... half the frames... if you found a way to capture at 60Hz, I remember there was a way to upload it to youtube (https://hardforum.com/threads/youtube-has-options-for-60hz-video-now.1839211/).

 

Btw, some music channels are missing in your video :)

Edited by shazz
Link to comment
Share on other sites

Thanks @DZ-Jay for the post.... reminds me soooo many good souvenirs.... what a journey!!!! (pun intended). That's the essence and beauty of the demoscene, it creates strong friendship and souvenirs that nobody else can understand :) Love that.. Miss that... :(

 

Hopefully, it will motivates newcomers to do better and create great things for the inty, a console I did not know before (quite rare in Europe) and really cool to code. High five for my partners in crime who suffered to help me release it in time for @Party, @DZ-Jay and @carlsson.

 

  • Like 1
Link to comment
Share on other sites

40 minutes ago, shazz said:

Nanochess, yes.... half the frames... if you found a way to capture at 60Hz, I remember there was a way to upload it to youtube (https://hardforum.com/threads/youtube-has-options-for-60hz-video-now.1839211/).

 

Btw, some music channels are missing in your video :)

 

Not sure of how to enable 60hz, but I re-uploaded with ECS enabled for good sound. Thanks for telling me!

 

Link to comment
Share on other sites

21 minutes ago, nanochess said:

 

Not sure of how to enable 60hz, but I re-uploaded with ECS enabled for good sound. Thanks for telling me!

 

I believe you have to make the video 720p or higher in order for it to enable 60hz.  I think you can capture the video, then reencode and process it to be 720p60 and then upload it to youtube. 

  • Like 1
Link to comment
Share on other sites

1 hour ago, shazz said:

Thanks @DZ-Jay for the post.... reminds me soooo many good souvenirs.... what a journey!!!! (pun intended). That's the essence and beauty of the demoscene, it creates strong friendship and souvenirs that nobody else can understand :) Love that.. Miss that... :(

 

Hopefully, it will motivates newcomers to do better and create great things for the inty, a console I did not know before (quite rare in Europe) and really cool to code. High five for my partners in crime who suffered to help me release it in time for @Party, @DZ-Jay and @carlsson.

 

Thanks for the nice words, @shazz.  I agree, this was a wonderful experience and I had a great time working with you and @carlsson.  A very short period of time was enough to make great bonds of friendship, and memories that will last forever.

 

the Intellivision is a great little machine, and it is such a wonderful feeling to be able to program and make it sing, after it brought me so much joy as a child. :)

 

   dZ.

Link to comment
Share on other sites

9 hours ago, shazz said:

Nanochess, yes.... half the frames... if you found a way to capture at 60Hz, I remember there was a way to upload it to youtube (https://hardforum.com/threads/youtube-has-options-for-60hz-video-now.1839211/).

 

Btw, some music channels are missing in your video :)

It's also missing intellivoice.  The "dings" at the beginning start with a robot countdown. ;)
 

I also noticed that on videos from the emulator, the "flash" effect doesn't show.  We blanked the screen by disabling the display for a few frames as a transition in some spots; and without it, it looks like it freezes instead.

 

Maybe something that needs to be fixed in jzIntv, to capture screen blanking on video.  Anyway, just one more reason to experience the demo "live" directly from a console (with ECS and Intellivoice).

 

   dZ.

Link to comment
Share on other sites

19 hours ago, shazz said:

Thanks @DZ-Jay for the post.... reminds me soooo many good souvenirs.... what a journey!!!! (pun intended). That's the essence and beauty of the demoscene, it creates strong friendship and souvenirs that nobody else can understand :) Love that.. Miss that... :(

 

Hopefully, it will motivates newcomers to do better and create great things for the inty, a console I did not know before (quite rare in Europe) and really cool to code. High five for my partners in crime who suffered to help me release it in time for @Party, @DZ-Jay and @carlsson.

 

 

I loved the Giana Sisters music in the Mario part! Nice detail! :) 

 

Link to comment
Share on other sites

Hi, guys,

 

I just updated the ROM binary archive on the first post with a version that fixes an unusual problem that may cause some music tracks to play incorrectly with noisy channels on the real hardware.

 

I recommend everybody who downloaded the previous version to get this one.  The only change is an improved initialization routine that sets up the memory environment correctly.

 

An technical explanation of the problem, for those interested, is below.  Warning, eye-watering tech-geek-speak follows.
 

Spoiler

While testing with the latest version of jzIntv today, I noticed that when I enabled a debugger feature to randomize memory initially, it caused some music tracks to play incorrectly.  This feature is intended to simulate how the original hardware, by virtue of being an electronic device, is affected by random energy fluctuations when started from cold.

 

Normally, this is not a problem because the EXEC takes care of setting up the system environment and clearing memory prior to starting the program.

 

However, for various reasons, our demo bypasses completely the EXEC bootstrap routine, hooking up instead to the PlayCable monitor at $4800.  This change to bypass the EXEC was introduced after the original @Party release three years ago.

 

Although the original code from 2017 did not initialize properly all its variables individually, it did not matter -- and we never noticed -- for the EXEC did it all for us.

 

Not so for our new custom bootstrap routine, though.  It dutifully initialized all devices, but did not reset all of RAM.  This caused some uninitialized variables to start with unexpected values.

 

All my recent testing was done in the debugger, but the previous version of jzIntv broke the memory randomization feature.  Therefore, I never noticed the problem since the default state of the emulator is to clear everything and start afresh, and the demo ran beautifully in jzIntv.  Updating to the latest version of the debugger made the bug manifest.

 

After finally tracking down the problem, the solution was quite simple:  the bootstrap routine now properly initializes all devices and RAM, and we're back in business. :)

 

 

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

8 hours ago, DZ-Jay said:

Hi, guys,

 

I just updated the ROM binary archive on the first post with a version that fixes an unusual problem that may cause some music tracks to play incorrectly with noisy channels on the real hardware.

 

I recommend everybody who downloaded the previous version to get this one.  The only change is an improved initialization routine that sets up the memory environment correctly.

 

An explanation of the problem, for those interested, is below.
 

  Reveal hidden contents

While testing with the latest version of jzIntv today, I noticed that when I enabled a debugger feature to randomize memory initially, it caused some music tracks to play incorrectly.  This feature is intended to simulate how the original hardware, by virtue of being an electronic device, is affected by random energy fluctuations when started from cold.

 

Normally, this is not a problem because the EXEC takes care of setting up the system environment and clearing memory prior to starting the program.

 

However, for various reasons, our demo bypasses completely the EXEC bootstrap routine, hooking up instead to the PlayCable monitor at $4800.  This change to bypass the EXEC was introduced after the original @Party release three years ago.

 

Although the original code from 2017 did not initialize properly all its variables individually, it did not matter -- and we never noticed -- for the EXEC did it all for us.

 

Not so for our new custom bootstrap routine, though.  It dutifully initialized all devices, but did not reset all of RAM.  This caused some uninitialized variables to start with unexpected values.

 

All my recent testing was done in the debugger, but the previous version of jzIntv broke the memory randomization feature.  Therefore, I never noticed the problem since the default state of the emulator is to clear everything and start afresh, and the demo ran beautifully in jzIntv.  Updating to the latest version of the debugger made the bug manifest.

 

After finally tracking down the problem, the solution was quite simple:  the bootstrap routine now properly initializes all devices and RAM, and we're back in business. :)

 

 

 

Yes, that happened to me. In the later part of the demo, when the rocket starts it can be quite noisy. And it was not the rocket. ;) 

Link to comment
Share on other sites

7 hours ago, Intymike said:

 

Yes, that happened to me. In the later part of the demo, when the rocket starts it can be quite noisy. And it was not the rocket. ;) 

 

Sorry about that.  It should be good now, check out the new ROM from the first post.  :)

 

Please let me know if you notice anything else strange.  I can't test on the hardware at the moment.  My working setup has changed in the past three years.

 

    -dZ.

  • Like 1
Link to comment
Share on other sites

On 7/12/2020 at 8:33 PM, DZ-Jay said:

It's also missing intellivoice.  The "dings" at the beginning start with a robot countdown. ;)
 

I also noticed that on videos from the emulator, the "flash" effect doesn't show.  We blanked the screen by disabling the display for a few frames as a transition in some spots; and without it, it looks like it freezes instead.

 

Maybe something that needs to be fixed in jzIntv, to capture screen blanking on video.  Anyway, just one more reason to experience the demo "live" directly from a console (with ECS and Intellivoice).

 

   dZ.

My mistake! Re-recorded the video and updated the pot.

 

BTW, I cannot find a way to import back the AVI to scale it. I'm working in Mac and VLC shows a black screen, while Quicktime and iMovie refuses to do anything.

 

Probably using a PC... *shrugs*

Link to comment
Share on other sites

24 minutes ago, nanochess said:

My mistake! Re-recorded the video and updated the pot.

 

BTW, I cannot find a way to import back the AVI to scale it. I'm working in Mac and VLC shows a black screen, while Quicktime and iMovie refuses to do anything.

 

Probably using a PC... *shrugs*

Have you tried Handbrake?  It's like the Nuclear-Powered-Swiss-Army knife of video encoding.

 

Unfortunately, the video still drops frames (you can see it plainly during the "scrolltext" part, where the letters disappear half-way through the screen, because the MOBs are being multiplexed at 30Hz; and during the "credits" part, where only half-the face appears at a time, where each of the four blocks is multiplexed at 15Hz).  But that seems to be YouTube's doing.

 

I include an AVI movie on the first post for direct download, for those brave enough to want to.

 

One thing that bugs me is that the AVI capture of jzIntv does not really see the screen blanking, which we use it as an effect.  And so, many parts where it should "flash" white as a nice transition, just look like a crappy freeze-frame.

 

Oh well, there's nothing to do about that. :(

 

I still appreciate it very much that you posted the video.  I was having a hard time publishing it myself. :thumbsup:

 

   Thanks!

 

     dZ.

Link to comment
Share on other sites

6 minutes ago, nanochess said:

Just tested and the developers of Handbrake decided that users shouldn't be able to upscale because that's silly... 3 years and counting.

Well, I can imagine how for regular movies that can be appropriate.  You have to admit that videos of 8-bit graphics is actually a rare use case.

 

I think this is similar to how Preview, Pixelmator, and other graphics applications refuse to allow you to scale images without any fancy interpolation; because in the standard use cases, who wants to see jaggies blown up when you re-scale an image?  I want to keep those huge pixels when I resize my 8-bit screenshots, but I understand that is not a common use case for those applications.

 

Anyway, a larger format from jzIntv would be useful.  Also, @intvnut, any chance of making screen blanking show up in the AVI movie in the same way as in the emulator?  Or is that an SDL1 thing?

 

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