First Spear Posted December 26, 2017 Share Posted December 26, 2017 Mode 0,13,13,13,13 Wait Border CS_WHITE,0 Scroll 4,4,0 For borderNew=0 to 200 Step 20 : Poke $200+borderNew, $2000: Poke $213+borderNew, $2000 : Next borderNew Wait I am trying to come up with some code that will make a 4 or 8 px border around the screen, that will display the same on jzIntv and on a real cartridge as well. The above code isn't quite working, can anyone point me in the right direction? Thanks. And Merry Christmas! I hope that your day has been good, if you celebrate! 1 Quote Link to comment Share on other sites More sharing options...
intvnut Posted December 26, 2017 Share Posted December 26, 2017 BTW, the "-bXX" flag on recent jzIntv versions will add more of a border around the display window. For example, -b10 looks pretty nice. The XX is expressed as a percentage of the active display area. That'll make things a bit more TV-like. So, it looks like your current code is setting the border color to white, but you've set the color stack entirely to light blue. You've offset the screen by 4px in X and Y, and you're advancing the color stack twice per row. What effect are you trying to achieve? Did you mean to set up the color stack with alternating colors, rather than all light blue? If I alternate between, say, light blue and yellow, I get the desired effect, I think. Here, I just replaced 13,13,13,13 with 13,6,13,6: . Mode 0,13,6,13,6 ' notice the alternating colors Wait Border CS_WHITE,0 Scroll 4,4,0 For borderNew=0 to 200 Step 20 Poke $200+borderNew, $2000 Poke $213+borderNew, $2000 Next borderNew Wait here: goto here . If I run that with the -b10 flag in jzIntv, I get this: 1 Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted December 26, 2017 Share Posted December 26, 2017 Wait... which "-bXX" flag? I just upgraded to the latest version a few days ago and I don't see it in the help page ("-h" flag)... DropZone:p-mach_drv dz$ jzintv -h jzIntv v1.0 Copyright 2017, Joseph Zbiciak Portions Tim Lindner, John Tanner, Rick Reynolds, Pedro Giffuni, copyright: Joe Fisher, Frank Palazzolo, Kjell Breding, Daniele Moglia, Marco Turconi, Andrea Mazzoleni (scale2x/3x/4x), Markus Oberhumer (minilzo), Oscar Toledo (AVI), Jean-loup Gailly (zlib), Mark Adler (zlib) Usage: jzintv [flags] gamefile Specifying a game image: jzIntv supports most, if not all, known formats for Intellivision game ROM images. When invoking jzIntv, provide the full path to the game-image file. If you omit the file extension, jzIntv will search for an appropriate file by trying the following extensions: .rom, .bin, .int, and .itv. The overall ROM search process is somewhat involved. See the jzIntv documentation for details. If the filename ends in .bin, .int, or .itv, or if jzIntv does not recognize the file's extension, it will assume the file is in BIN+CFG format. In that case, jzIntv will look for a matching .cfg file. Systems with case-sensitive file names (Linux, UNIX, etc.) need to ensure the filename extensions are in lower-case. On all systems, jzIntv expects to receive file names with lower-case extensions. ROM Image Flags: -e /path/to/exec.bin Specifies path to the EXEC ROM image. --execimg=/path/to/exec.bin By default, jzIntv looks in current dir. -g /path/to/grom.bin Specifies path to the GROM ROM image. --gromimg=/path/to/grom.bin By default, jzIntv looks in current dir. -E /path/to/ecs.bin Specifies path to the ECS ROM image --ecsimg=/path/to/ecs.bin By default, jzIntv looks in current dir. Only needed when ECS is enabled. Intellivision Hardware Flags: -s# --ecs=# ECS. 0: Disable, 1: Enable -v# --voice=# Intellivoice. 0: Disable, 1: Enable -W# --voicewindow=# Sets averaging window for voice filter. -Vname --voicefiles=name Saves voice WAV files to name####.wav. -P --pal Start jzIntv in PAL (50Hz) mode. Video and Sound Flags: -z<res> --displaysize=<res> Desired display mode: <res> can be a string of the form XDIMxYDIM,DEPTH such as "320x200,8" or a single digit specifying a built-in resolution from the following set. 0: 320x200,8bpp 1: 640x480,8bpp 2: 320x240,16bpp 3: 1024x768,8bpp 4: 1680x1050,8bpp 5: 800x400,16bpp 6: 1600x1200,32bpp 7: 3280x1200,32bpp --resolution=<res> Synonym for --displaysize -f# -x# --fullscreen=# Full screen display: 0: Windowed 1: Full screen --prescale=<ps> Enable prescaler <ps>. Use the flag "--prescale=-1" to print a list of the supported prescalers. --gfx-palette=<file> Load alternate palette from <file> -G# --gramsize=# Change number of GRAM tiles 0: 64 tiles (standard) 1: 128 tiles 2: 256 tiles (INTV88) -a# --audiorate=# Audio sampling rate. 0 disables audio. --audio=# Synonym for --audiorate. -Fname --audiofile=name Records all audio to specified file. -w# --audiowindow=# Sets averaging window for audio filter. -B# --audiobufsize=# Internal audio buffer size. -C# --audiobufcnt=# Internal audio buffer count. -M# --audiomintick=# Minimum Intellivision cycles between explicit calls to snd_tick(). Input Configuration Flags: Currently, jzIntv does not offer a flexible method to re-bind keys. The kbdhackfile does allow you to crudely specify key bindings. --kbdhackfile=/path/to/file Configure key bindings. -m# --kbdmap=# Specify initial keyboard map (0-3) Analog and USB joysticks have a rich set of configuration parameters. Run jzIntv with an empty configuration string to find out defaults are for your joystick and operating system. For more information on configuring joysticks, see the file jzintv/doc/jzintv/joystick.txt --js0="config string" Configures Joystick #0 --js1="config string" Configures Joystick #1 --js2="config string" Configures Joystick #2 --js3="config string" Configures Joystick #3 The Classic Game Controller can drive either the Master Component or the ECS' controller inputs. The following flags associate CGCs with controllers. They also specify the path to the CGC's device node: --cgc0=/path/to/cgc CGC for Master Component inputs. --cgc1=/path/to/cgc CGC for ECS inputs. Intellicart .ROM emulation specific flags: -c# --icartcache=# Change caching policy for Intellicart .ROM programs: 0: Cache bankswitched memory (default) 1: Don't cache bankswitched memory 2: Only cache read-only, non-banksw. 3: Do not cache anything. Debugger flags: -d --debugger Enable jzIntv's debugger. --sym-file=path Load symbol table from 'path'. --src-map=path Load source/listing map from 'path'. --script=path Execute debug commands from 'path'. --rand-mem Randomize memories on startup Misc Flags: -r# --ratecontrol=# \_ Speed up by factor #. Setting # --macho=# / to 0 disables rate control. -p path --rom-path=path Append path to the ROM search path. -q --quiet Hide jzIntv's non-error output. --gui-mode Tells jzIntv to listen for commands from a GUI over stdin. -J path --jlp-savegame=path Enable JLP-style save-game support with 'path' as the save-game file. --file-io Enable Emu-Link File-IO support (See examples/fileio/fileio.asm) -l --license License information -h -? --help This usage info Environment: JZINTV_ROM_PATH Controls ROM search path. Components of the ROM search path should be separated by ":" characters. jzIntv examines dirs specified by --rom-path before dirs specified by JZINTV_ROM_PATH. Legal note: Intellivision(TM) is a trademark of Intellivision Productions. Neither Joe Zbiciak nor jzIntv are affiliated with Intellivision Productions. DropZone:p-mach_drv dz$ P.S. I just tried it, and it seems to be there... it seems you forgot to add it to the help page. In any case, thanks for the tip! -dZ. Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted December 26, 2017 Share Posted December 26, 2017 By the way, just to get this straight, the "-bXX" flag renders the border larger by extending the viewport of the emulator outwards, right? In other words, it just affects the visual aspect of the emulated screen, but does not have any effect on the actual border width and position, as understood by the STIC edge mask and horizontal/vertical delay registers. UPDATE: I just did a few tests and it seems so. Wow, this is cool! Quote Link to comment Share on other sites More sharing options...
intvnut Posted December 26, 2017 Share Posted December 26, 2017 When I announced the last release, I indicated that the flag was experimental, since I'm not sure I like the current scheme. That's why it's not in the documentation. I wanted to add something, but the current settings scheme doesn't feel right somehow. So, I added a flag folks could use in the meantime, until we could figure out a better way. All the flag does is extend how much of the overscan area gets drawn. If you ask for a 320x200 screen with -b10, you actually get a 384x240 screen, with 320x200 of STIC in the middle, and extra border-color pixels outside. There's two resolutions I need to worry about (four if you consider fullscreen vs. windowed): The resolution of the active STIC area (where MOBs, background tiles, etc are visible), and the resolution of the window or display that I deposit that on. The second of those two must be equal or larger than the first. If it's larger, it just gets flooded with the border color, and the active STIC area gets centered in it, much like a real TV would do. 1 Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted December 26, 2017 Share Posted December 26, 2017 (edited) When I announced the last release, I indicated that the flag was experimental, since I'm not sure I like the current scheme. That's why it's not in the documentation. I wanted to add something, but the current settings scheme doesn't feel right somehow. So, I added a flag folks could use in the meantime, until we could figure out a better way. Ah, gotcha! I haven't followed the forum too closely in the past months so I missed a lot of the announcements and enhancements. I should go back and check those out. When you say "the current settings scheme doesn't feel right," are you referring to the flag interface (percentage of the screen), or something else? I admit that entering a percentage of the screen seems rather strange. Perhaps you should have a few pre-set sizes, something like "standard" (-b0), "small" (-b5), "large" (-b10), "x-large" (b25), or something like that. That seems to work for the screen resolutions (-z flag), so it may be good here too. Unless... I misunderstood your concern. All the flag does is extend how much of the overscan area gets drawn. If you ask for a 320x200 screen with -b10, you actually get a 384x240 screen, with 320x200 of STIC in the middle, and extra border-color pixels outside. There's two resolutions I need to worry about (four if you consider fullscreen vs. windowed): The resolution of the active STIC area (where MOBs, background tiles, etc are visible), and the resolution of the window or display that I deposit that on. The second of those two must be equal or larger than the first. If it's larger, it just gets flooded with the border color, and the active STIC area gets centered in it, much like a real TV would do. Yeah, that's exactly what I thought it did. For what it's worth, I just did a few quick tests on various sizes and resolutions and it works great. it really gives a nice feel to the emulation to be able to see the border a bit thicker all around. I personally like 5%, which looks closer to what I see on my 32" Sony Trinitron. Thanks again for keeping the tools alive and working on all these cool new features. I haven't yet played with the AVI generator, but that's another thing that looks to be exceedingly useful. -dZ. Edited December 26, 2017 by DZ-Jay Quote Link to comment Share on other sites More sharing options...
mthompson Posted December 28, 2017 Share Posted December 28, 2017 Nice! I like being able to essentially make the border visible and "more TV-like," especially with games that use the border color as an indicator. The -b10 flag gives a great look. Quote Link to comment Share on other sites More sharing options...
mr_me Posted December 30, 2017 Share Posted December 30, 2017 Not a big deal either way, but I would expect the setting to refer to intellivision pixels (ie. scanlines). It seems to always do something different in full screen, can't figure it out. Always thought this setting would be helpfull for someone using a CRT with overscan. Quote Link to comment Share on other sites More sharing options...
intvnut Posted December 31, 2017 Share Posted December 31, 2017 Not a big deal either way, but I would expect the setting to refer to intellivision pixels (ie. scanlines). It seems to always do something different in full screen, can't figure it out. Always thought this setting would be helpfull for someone using a CRT with overscan. In full-screen mode, SDL gives me a list of supported resolutions. jzIntv tries to find the smallest resolution (in terms of 'fewest unused pixels') that will hold the display size you asked for. Hence the chatty little dialog: gfx: Searching for video modes near 640x480x8 with: gfx: Hardware surf, Single buf, Sync blit, Software pal, Full screen gfx: Considering 2880x1800... New best fit. Diff = 4876800 gfx: Considering 2560x1600... New best fit. Diff = 3788800 gfx: Considering 2048x1536... New best fit. Diff = 2838528 gfx: Considering 1920x1440... New best fit. Diff = 2457600 gfx: Considering 2048x1280... New best fit. Diff = 2314240 gfx: Considering 1600x1200... New best fit. Diff = 1612800 gfx: Considering 1680x1050... New best fit. Diff = 1456800 gfx: Considering 1600x1000... New best fit. Diff = 1292800 gfx: Considering 1344x1008... New best fit. Diff = 1047552 gfx: Considering 1440x900... New best fit. Diff = 988800 gfx: Considering 1280x960... New best fit. Diff = 921600 gfx: Considering 1344x840... New best fit. Diff = 821760 gfx: Considering 1280x800... New best fit. Diff = 716800 gfx: Considering 1024x768... New best fit. Diff = 479232 gfx: Considering 1024x640... New best fit. Diff = 348160 gfx: Considering 800x600... New best fit. Diff = 172800 gfx: Considering 800x500... New best fit. Diff = 92800 gfx: Considering 640x480... New best fit. Diff = 0 gfx: Selected: 640x480x8 with: Most of the time it's well behaved, but some machines give me a truly wacky list to work with. As for specifying it in scanlines... meh. That makes it even harder to work out what the correct window size should be. Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted January 1, 2018 Share Posted January 1, 2018 As for specifying it in scanlines... meh. That makes it even harder to work out what the correct window size should be. I say, define a preset list as 0) "normal," 1) "medium," 2) "large," 3) "extra-large" (or something like that) with an option to override with a percentage, just like -zX does for display resolution. That way, the emulator can do what seems "right" for the selected resolution. -dZ. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.