Jump to content
IGNORED

Visdom I & II FAQ


JAC!

Recommended Posts

Hi everybody,

 

It seems that quite many of you know my Visdom and Visdom II demos. It also seems that some of you like them and like to know how I did them back in the "golden days".

 

"Visdom I" was coded on the Atari 800 XL with ATMAS II. The idea of the demo was to port my favourite C64 intro (cracktro actually) by the "Hotline" crew to my machine because I simply loved the style and the "smooth criminal" tune. Since I never was into composing sounds and didn't know much about creating sounds I had a problem. But there was an Atari Basic listing for a tune named "Honkey Tonkey" in some printed computer mag that I bought in the super market and so I ported the replayer and the DATA statements into assembler. Maybe I'll find out the original author and send him some regards.

The second part of the "Visdom I" demo was the result of a "coding battle". I already had an Amiga 500 at that time and some friends of mine, who also were coders, had started to create demos on that machine. So the group "Visdom" was an Amiga group of 5 people and I was the "one man Atari division". We had meeting every 3 ot 4 weeks where the guys showed their progress in their Amiga Demos and the latest stuff they had received from other groups. Well, and I always tried to port their achievements to the Atari XL until the next meeting. And I won this "competition" quite often and it really was fun (and beer). One day they presented the new Megademo from the "Royal Amiga Force". I was amazed by the demo and if you look at the lower left of the screenshot, you will find the waving "RAF" logo in front of the copper bars with the scroller below. And since most of the other guys came from C64, they were stunned by the large waving logo and any distortion effects with more than 4*8 pixels. So I decided to create a demo that could not be done an C64 and looked like this part of the RAF demo. The first version actually had an "RAF" logo, but I changed it (since R.A.F. is the short form of a former German terrorist group ...) as soon as I had designed my own logo in DPaint. Maybe I'll try and find that pre-version. I don't know how the demo was spread after that meeting on 04-05-91 because I didn't have any other Atari contacts at that time. Despite of this people from all over the world contacted my years later because they had somehow received that demo. That was really funny to me.

 

"Visdom II" will be described later, I hope I can edit this post afterwards to add more history.

 

I also found some minor bugs in the demos later and I'll release fixed versions now. Especially because I promised THW last year that I'll create a single file version of the Visdom II demo. To be honest all bugs amount to the same root cause: I only had a quite bad color TV set at that time, so some flaws were simple not visible. But todays emulators and screens are merciless in this regard and I don't want to be blamed for a dutch color scheme after all these years ;-)

  • Like 1
Link to comment
Share on other sites

Hello Peter,

 

finally arrived here... ;) I mentioned several times your Visdom demo...:)

 

ok...little bit offtopic but is the rastersplit in Visdom 2 done via PM overlays or via DLI midline changes?

 

How did you discovered "HIP"-like mode in 1993? We discovered the "GTIA bug" 3 years later... :)

 

Hi for tonight,

 

The rastersplit in the "Wiggle" of the "Visdom 2" uses both. It is based on a self modifying kernel loop wich delays the split of $d01a with 1 cylce accuracy. Since this is too coarse to achieve full coverage and reach every single pixel, the missile 0 is used in the 5th player mode of PRIOR and quadruple width to color the missing pixels.

;	Wiggle-X-Width: 8 to 64 = 57 Pixels
;
;	®_03-03-93_by_JAC!_Wiggle_works_100%.

...

xtab	= base			;Animated_Sine_value_table.
btab	= base+$100		;Branch_offset_table.


...
clc			;Convert_xpos_table_to_..
adc #48
sta mtab,x		;Missile_HPOS.
lda htab,y
sta btab,x		;Branch_offset

...

kernel	lda wcol1
ora whell
sta kernel2+1
lda wcol2
ora whell
sta $d019
tay
clc
ldx #0
kernel1	sta $d40a
lda mtab,x
sta $d004
kernel2	lda #$00
sta $d01a
lda btab,x
sta kernel3+1
kernel3	bne *+0
kernel4	nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
sty $d01a
inx
bpl kernel1
rts

kernel5	nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
bit $00		;3 cycles instead of 2
sty $d01a
inx
bpl kernel1
rts

k	= kernel5-kernel4

...
bragen	ldx #0			;Generate_branch_offset_tab
ldy #0
bragen1	lda braxtab,x
cmp x1
beq bragen3
sta x1
cmp #$ff
beq bragend
lda branch,x
bragen2	sta htab,y
iny
cpy x1
bne bragen2
bragen3	inx
jmp bragen1
bragend	rts

braxtab	.byte 8,15,24,32,40,48,56,64,72,76,80,84,88,92,96
.byte 100,104,108,112,112,114,116,120,127,$ff

branch	.byte 12,k+13,11,k+11,10,k+10,9,k+9,8,k+8,7,k+7
.byte 6,k+6,5,k+5,4,k+4,3,k+3,2,k+2,1,k+1,0,k

 

Discovering the GTIA bug was a side effect of trying to find the exact timing for the rastersplits. Because the GR9 pixels were hard to distinguish on my old color TV, I used GR 10 with a flashing color/luminance during the development to find the correct split and missile position (see "braxtab"). But for half of the pixels the missle position wasn't correct when I ran the split with GR 9 afterwards. The investigation yielded what I called "ImpRes" (Impossible Resolution ;-) ) because it was just a fake based on a picture pattern with a very special layout.

 

I told TLB about my findings and he used the one pixel delay of "ImpRes" to let the convered version of Peachy's excellent snake picture look more natural in his part on the third disk of Overmind.

 

More next time, Peter/JAC!

ImpRes.bmp

WomSnake.bmp

Link to comment
Share on other sites

Hello Peter,

 

finally arrived here... ;) I mentioned several times your Visdom demo...:)

 

ok...little bit offtopic but is the rastersplit in Visdom 2 done via PM overlays or via DLI midline changes?

 

How did you discovered "HIP"-like mode in 1993? We discovered the "GTIA bug" 3 years later... :)

 

Hi for tonight,

 

The rastersplit in the "Wiggle" of the "Visdom 2" uses both. It is based on a self modifying kernel loop wich delays the split of $d01a with 1 cylce accuracy. Since this is too coarse to achieve full coverage and reach every single pixel, the missile 0 is used in the 5th player mode of PRIOR and quadruple width to color the missing pixels.

;	Wiggle-X-Width: 8 to 64 = 57 Pixels
;
;	®_03-03-93_by_JAC!_Wiggle_works_100%.

...

xtab	= base			;Animated_Sine_value_table.
btab	= base+$100		;Branch_offset_table.


...
clc			;Convert_xpos_table_to_..
adc #48
sta mtab,x		;Missile_HPOS.
lda htab,y
sta btab,x		;Branch_offset

...

kernel	lda wcol1
ora whell
sta kernel2+1
lda wcol2
ora whell
sta $d019
tay
clc
ldx #0
kernel1	sta $d40a
lda mtab,x
sta $d004
kernel2	lda #$00
sta $d01a
lda btab,x
sta kernel3+1
kernel3	bne *+0
kernel4	nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
sty $d01a
inx
bpl kernel1
rts

kernel5	nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
bit $00		;3 cycles instead of 2
sty $d01a
inx
bpl kernel1
rts

k	= kernel5-kernel4

...
bragen	ldx #0			;Generate_branch_offset_tab
ldy #0
bragen1	lda braxtab,x
cmp x1
beq bragen3
sta x1
cmp #$ff
beq bragend
lda branch,x
bragen2	sta htab,y
iny
cpy x1
bne bragen2
bragen3	inx
jmp bragen1
bragend	rts

braxtab	.byte 8,15,24,32,40,48,56,64,72,76,80,84,88,92,96
.byte 100,104,108,112,112,114,116,120,127,$ff

branch	.byte 12,k+13,11,k+11,10,k+10,9,k+9,8,k+8,7,k+7
.byte 6,k+6,5,k+5,4,k+4,3,k+3,2,k+2,1,k+1,0,k

 

Discovering the GTIA bug was a side effect of trying to find the exact timing for the rastersplits. Because the GR9 pixels were hard to distinguish on my old color TV, I used GR 10 with a flashing color/luminance during the development to find the correct split and missile position (see "braxtab"). But for half of the pixels the missle position wasn't correct when I ran the split with GR 9 afterwards. The investigation yielded what I called "ImpRes" (Impossible Resolution ;-) ) because it was just a fake based on a picture pattern with a very special layout.

 

I told TLB about my findings and he used the one pixel delay of "ImpRes" to let the convered version of Peachy's excellent snake picture look more natural in his part on the third disk of Overmind.

 

More next time, Peter/JAC!

 

Thanks Peter! you still remember all the details! that is cool.... so at the end we have to ask TLB how he converted the pic and then we knew who invented the "pre-HIP"-mode!

 

I still found the Whiggle rastersplit one of the most impressive ones... esp. the whole intro is well designed without any flicker etc.

 

and all done in Atmas II or Macro Ass XE?

Link to comment
Share on other sites

o... cool...just read the credits of the 3rd disc... TQA contributed the music? ;) so I have to look into the ASMA archive because of the Lotus 2 intro msx used in the 546 dots part...

 

got it... first I needed a translation table for scenehandle2realname to find the stuff in the ASMA archive... ;)

Edited by Heaven/TQA
Link to comment
Share on other sites

  • 2 weeks later...
Hi everybody,

 

It seems that quite many of you know my Visdom and Visdom II demos. It also seems that some of you like them and like to know how I did them back in the "golden days".

 

"Visdom I" was coded on the Atari 800 XL with ATMAS II. The idea of the demo was to port my favourite C64 intro (cracktro actually) by the "Hotline" crew to my machine because I simply loved the style and the "smooth criminal" tune. Since I never was into composing sounds and didn't know much about creating sounds I had a problem. But there was an Atari Basic listing for a tune named "Honkey Tonkey" in some printed computer mag that I bought in the super market and so I ported the replayer and the DATA statements into assembler. Maybe I'll find out the original author and send him some regards. See the Atari version versus the C64 version below.

post-17404-1231888232_thumb.pngpost-17404-1231888239_thumb.png

The second part of the "Visdom I" demo was the result of a "coding battle". I already had an Amiga 500 at that time and some friends of mine, who also were coders, had started to create demos on that machine. So the group "Visdom" was an Amiga group of 5 people and I was the "one man Atari division". We had meeting every 3 ot 4 weeks where the guys showed their progress in their Amiga Demos and the latest stuff they had received from other groups. Well, and I always tried to port their achievements to the Atari XL until the next meeting. And I won this "competition" quite often and it really was fun (and beer). One day they presented the new Megademo from the "Royal Amiga Force" in 1989. I was amazed by the demo and if you look at the lower left of the screenshot, you will find the waving "RAF" logo in front of the copper bars with the scroller below. And since most of the other guys came from C64, they were stunned by the large waving logo and any distortion effects with more than 4*8 pixels. So I decided to create a demo that could not be done an C64 and looked like this part of the RAF demo. The first version actually had an "RAF" logo, but I changed it (since R.A.F. is the short form of a former German terrorist group ...) as soon as I had designed my own logo in DPaint. This version was created in 1989 an I just found it again when I recently tested my SIO2USB. Press space to move the logo.

The final version was done for our on 04-05-91. Because I didn't have any other Atari contacts at that time I decided to sent that version to the "Disk Line" disk mag from PPP (Power per Post) but I don't remeber that I ever got any feedback.

post-17404-1231882882_thumb.png post-17404-1231888244_thumb.pngpost-17404-1231882877_thumb.png

 

Despite of this people from all over the world contacted my years later because they had somehow received that demo. That was really funny to me. Some weeks ago I came across an artical by Heavon the the ABBUC Magazin 46 where he wrote about coding scrollers in the demo corner. There he mentioned the "Visdom" demo for having a graphics 0 scroll with single pixel resolution and that this probably is an example of heavig bit shifting. To be honest, this single pixel scroll takes no more additional cycles for the single pixel effect. Every 8 pixels, the screen memory is shifted. Every 2 pixels the HSCROLL position is changed and for the single pixel resolution, I exploited that every 8x8 charset is actually a 7x7 or 7x8 charset, at least for all normal characters like letters or digits. Otherwise adjacent characters would stick to each other. So the initialization simply creates a second charset which is shifted 1 bit to the right and this charset is used for the odd pixel positions. Resulting in about 10 additional cylces for this in the DLI.

 

You can download the additional files via JacFiles89.zip.

 

"Visdom II" will be described later.

 

I also found some minor bugs in the demos later and I'll release fixed versions now. Especially because I promised THW last year that I'll create a single file version of the Visdom II demo. To be honest all bugs amount to the same root cause: I only had a quite bad color TV set at that time, so some flaws were simple not visible. But todays emulators and screens are merciless in this regard and I don't want to be blamed for a dutch color scheme after all these years ;-)

 

Well, a real epic fail in editing my post I would say. Links, pictures and downloads added, but not in the original post, aarargh. Any suggestion how to correct this is really welcome...

 

Best regards, Peter / JAC!

Edited by peter.dell
Link to comment
Share on other sites

  • 4 months later...
  • 2 years later...

so... thanks for mentioning me in your history... still can not wait the Vis2 history... ;)

 

There you are: I don't like bugs and they keep bothering me even after many years. What I did this week are very likely the most delayed updates in the 8-bit system history . On the tab Atari 8-bit (previously named "Productions") you can now find only 19 respectively 21 years after the original release ...

  • Visdom I - fixed version plus sources
    Fixes: Checks for 64k, runs properly on NTSC machines, accepts any key to start part 2, no more color artifacts in the scroller.
  • Visdom II - fixed single file version plus sources
    Fixes: Checks for 64k and PAL, no more color artifacts in the wiggle effect, available a standalone executable.
  • Visdom II - full background story of the demo
    The description of the unique circumstances under which the demo was created and the technical details.

... coders just want to have fun :-)

 

visdom-i.gifvisdom-ii.gif

  • Like 2
Link to comment
Share on other sites

Visdom I - fixed version plus sources
  • Fixes: Checks for 64k, runs properly on NTSC machines, accepts any key to start part 2, no more color artifacts in the scroller.
  • Visdom II - fixed single file version plus sources
    Fixes: Checks for 64k and PAL, no more color artifacts in the wiggle effect, available a standalone executable.

 

Awesome, I visited your site recently looking to see if you had an NTSC Visdom and a single file file Visdom II as I'm testing some emulation code at the moment, so they are much appreciated! :thumbsup: :thumbsup:

 

Who would have thought old Atari demos would come with such great customer support? :-D

 

Cheers,

 

Simon

Link to comment
Share on other sites

so... thanks for mentioning me in your history... still can not wait the Vis2 history... ;)

 

There you are: I don't like bugs and they keep bothering me even after many years. What I did this week are very likely the most delayed updates in the 8-bit system history . On the tab Atari 8-bit (previously named "Productions") you can now find only 19 respectively 21 years after the original release ...

  • Visdom I - fixed version plus sources
    Fixes: Checks for 64k, runs properly on NTSC machines, accepts any key to start part 2, no more color artifacts in the scroller.
  • Visdom II - fixed single file version plus sources
    Fixes: Checks for 64k and PAL, no more color artifacts in the wiggle effect, available a standalone executable.
  • Visdom II - full background story of the demo
    The description of the unique circumstances under which the demo was created and the technical details.

... coders just want to have fun :-)

 

visdom-i.gifvisdom-ii.gif

 

 

Thanks JAC! Your demos are the best! What compiler(s) did you use on your sources?

Link to comment
Share on other sites

Hey Jac!

 

Great article, I love the stories of how things were created back then, as a wannabe coder who never got anywhere near your heady heights of skillz (lamer speak..oh dear..) I find the whole thing super interesting.

 

As an Amiga owner (A1200 with 68030 and 8MB ram 80MB hd) at the time I'd love to see what you did for the Amiga one day...

 

Thanks

 

Paul...

Link to comment
Share on other sites

need to setup my A1200 030/4mb, too... it was not powered up for more than 10 years.

 

Go for it, had some great time with the 'miggy', still wish the Amiga OS was what we used in PC's, it was superb..

 

Enjoy a lovely game of Cannon Fodder, Sensible soccer and Jazzy Jack Rabbit :)

Link to comment
Share on other sites

  • 2 weeks later...

Now that I have tested Visdom I on real NTSC machine, I found that the palettes are different between PAL/NTSC Ataris :-(

Before I had tested in Altirra with both palettes (unintentionally) setup the same way (as PAL).

I'll provide a fix and I'öl also try to optimize Visdom II so it runs on NTSC.

 

Fun part: After digging my old stuff I found some pictures from the time when Visdom II was created. As you can see I did not really my millitary service too serious. On the right most picture you can see my room mate carrying the "disassembled" wood box where I stored my Amiga / Atari :-)

post-17404-0-74305800-1331118932_thumb.jpgpost-17404-0-73672400-1331118939_thumb.jpgpost-17404-0-82516700-1331118945_thumb.jpg

  • Like 1
Link to comment
Share on other sites

So here we go. Both demos now fully support NTSC machines and use the correct colors. The only difference is that on NTSC machine the wiggle effect on the Visdom II is animated at only 20-30 FPS instead of 50 FPS on PAL. There are really no cycles left - but I guess that's one of the differences only the coder himself will notice :-)

  • Visdom I - fixed version plus sources
    Fixes: Checks for 64k, rruns properly on NTSC machines with correct colors, accepts any key to start part 2, no more color artifacts in the scroller.
  • Visdom II - fixed single file version plus sources
    Fixes: Checks for 64k, runs properly on NTSC machines with correct colors, no more color artifacts in the wiggle effect, available a standalone executable.

...

  • Like 1
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...