Page 1 of 1

Tandy 64 Jr. - An intro for the PCJr.

PostPosted: Sun Dec 31, 2017 8:26 am
by riq
Happy New Year!

Image

We ported our "Tandy 64" intro which was originally coded for the Tandy 1000 HX, to the PCJr.

You can download the binary from here:
https://github.com/c64scene-ar/tandy64/ ... dy64jr.zip

"video capture" is here (doesn't look very good but I don't have any RGBI capture for the PCJr):
https://youtu.be/phtEFwJu0AM


Source code:
https://github.com/c64scene-ar/tandy64/tree/ibm_pcjr

requirements:
PCJr. with at least 256kb RAM.
Use jrconfig.sys with /v32. Code should be loaded above the initial 128k RAM (jrconfig.sys will do this for you).


Thanks Trixter and Brutman for your help.

Re: Tandy 64 Jr. - An intro for the PCJr.

PostPosted: Thu Jan 04, 2018 3:58 pm
by Vorticon
Nicely done!

Re: Tandy 64 Jr. - An intro for the PCJr.

PostPosted: Sat Jan 06, 2018 11:22 am
by Trixter
Very nice. I have palette corruption in the lower right corner but otherwise it works perfectly. I was surprised to see the large-font scroller working at the full framerate; I'll have to check your routines to see how you were implementing that :-)

Intro uses 108KB of RAM; if you moved all graphics outside of the main .exe into a data file (which you can then attach to the main .exe if you want it to be a single-filer) you can probably get it working on a 128KB PCjr.

Re: Tandy 64 Jr. - An intro for the PCJr.

PostPosted: Sat Jan 06, 2018 10:45 pm
by riq
thanks Vorticon and Trixter

Trixter wrote:I have palette corruption in the lower right corner

Ouch. I thought I fixed that. In my machine works Ok... but I guess my "stable raster code" is not that stable... even a cycle of difference might affect it.
if you have time, could to take a screen shot. I'd would to know how severe it is.

Trixter wrote:I was surprised to see the large-font scroller working at the full framerate;

Nothing strange in the scroll: just some `rep movsw` and fetching the bits from a cache. Since the PCJr is a bit slower than the Tandy (4.77Mhz vs. 7.16Mhz) I had to reduce the width of the scroll a bit (by 20 or 30 cols)... otherwise this intro is the same as the Tandy one.

Trixter wrote:Intro uses 108KB of RAM; if you moved all graphics outside of the main .exe into a data file (which you can then attach to the main .exe if you want it to be a single-filer) you can probably get it working on a 128KB PCjr.


Thanks. Not sure if the performance will be good enough though. As it is know (running on the the above-of-128k RAM), I only have like 1 or 2 spare raster lines. I might be able to optimize it a bit more, but I guess not enough to run the whole thing from the "slow ram". TBH, I haven't tested how slow is the "slow ram", but I heard it is much slower.

Thanks.

Re: Tandy 64 Jr. - An intro for the PCJr.

PostPosted: Sun Jan 07, 2018 12:39 pm
by Trixter
riq wrote:
Trixter wrote:I have palette corruption in the lower right corner

Ouch. I thought I fixed that. In my machine works Ok... but I guess my "stable raster code" is not that stable... even a cycle of difference might affect it.
if you have time, could to take a screen shot. I'd would to know how severe it is.


Does your PCjr have an NEC V20 in it? That CPU is about 20% faster than an 8088, which would explain why you don't see corruption but I do (timing issue).

Thanks. Not sure if the performance will be good enough though. As it is know (running on the the above-of-128k RAM), I only have like 1 or 2 spare raster lines. I might be able to optimize it a bit more, but I guess not enough to run the whole thing from the "slow ram". TBH, I haven't tested how slow is the "slow ram", but I heard it is much slower.


If you only have 2 raster lines left, then yes, running out of the slow RAM would not work (or, you'd have to rewrite the code, like using two video pages to not worry about timing of when you update the scroller, or partially update the scroller whenever you are wasting time waiting for a raster line).

In any case, it's nice to see a true proper PCjr prod (ie. one that uses 320x200x16). I cheated :-)

Re: Tandy 64 Jr. - An intro for the PCJr.

PostPosted: Mon Jan 08, 2018 11:27 am
by riq
Trixter wrote:Does your PCjr have an NEC V20 in it? That CPU is about 20% faster than an 8088, which would explain why you don't see corruption but I do (timing issue).


Is there software way to detect the nec v20?
- because I realized that the 8088 chip is beneath the floppy drive and I was to lazy to remove the drive to check it.
- I want to detect it in runtime and use a different path-code if needed

I tested the intro on another machine (something that I should have done before releasing it) and it looked like this:
Image

does it look like that in your machine?

From the raster bar noise, I can tell that the 2nd machine is one or two cycles slower per raster line... something that I should be able to fix, but I should do it in a way that works Ok in all machines.
Perhaps my 1st machine is using a NEC v20... if not, I wouldn't know... perhaps one of the side-carts is inserting an additional wait-state?

Re: Tandy 64 Jr. - An intro for the PCJr.

PostPosted: Mon Jan 08, 2018 3:37 pm
by Trixter
Sidecars don't add additional waitstates. And yes, my corruption looks like your photo, so if you fix it there, you'll likely fix it on mine.

If you run TOPBENCH it can detect if you have an NEC V20 or not; do D)atabase->A)dd this system.

Re: Tandy 64 Jr. - An intro for the PCJr.

PostPosted: Tue Jan 09, 2018 9:48 pm
by riq
Trixter wrote:If you run TOPBENCH it can detect if you have an NEC V20 or not; do D)atabase->A)dd this system.


Thanks!
So it seems that my two machines are 8088's... although they almost have the same speed, one is a tiny bit faster (2%~3%) than the other, except in the VidRamTest where the other is faster. (no idea why).
In case it helps, the machine that is a tiny bit faster is this one: http://www.vcfed.org/forum/showthread.p ... on-options

What's interesting is that both machines are a tiny bit slower than the one in the database, this one:
https://github.com/MobyGamer/TOPBENCH/b ... E.INI#L437
That machines seems to be like 1%~2% faster.



Attached the output.ini files.


I'll try to fix the raster garbage this weekend... but I don't know if it will work "garbage free" on the machine described on the database since it seems to be faster than mines.

Re: Tandy 64 Jr. - An intro for the PCJr.

PostPosted: Sat Jan 20, 2018 4:16 pm
by monzamess
I tried the demo on my PCjr and got the tearing pictured above. I also had to do a clean boot off floppy with just jrconfig.sys in DOS 3.3. My normal boot also includes drivers for network, 3.5" backpack drive, and serial mouse, and one or more of those causes the demo to hard crash after 15-30 seconds. I've still got the stock 8088, plus jrIDE, speech sidecar, and the devices mentioned previously.

With the clean boot, it works (except for the tearing of course) and was very cool to experience "live." The song stuck in my head for the next day. Thanks again!

Re: Tandy 64 Jr. - An intro for the PCJr.

PostPosted: Sat Jan 20, 2018 7:01 pm
by riq
monzamess wrote:With the clean boot, it works (except for the tearing of course) and was very cool to experience "live." The song stuck in my head for the next day. Thanks again!


Thanks for the feedback!

I'm still trying to figure out why one of my machines is one cycle faster in the horizontal retrace than the other one.
As soon as I find it out, I'll release a new version, that in theory, should run Ok on all PCjr.