Emulation questions

Discuss the games, programs, utilities... and vaporware!
@username@
Posts: 172
Joined: Tue Oct 22, 2013 6:59 pm
Location: Glasgow, Scotland

Re: Emulation questions

Post by @username@ » Tue Jan 06, 2015 1:57 am

Correction for BattleShips in CV mode

Code: Select all

< 670  PRINT"     E SHIPS."
---
> 670  PRINT"BATTLE SHIPS."
I'm guessing some licence was taken here :D

The original author (MJ HALL) intended the line to have the "BATTL" missing, as it's drawn from line 810 onwards.
You do not have the required permissions to view the files attached to this post.
˙uʍop-ǝpısdn sı ɹoʇıuoɯ ɹnoʎ 'sıɥʇ pɐǝɹ uɐɔ noʎ ɟı

The creatiVision Emulator 16.04.24
Salora Manager / Laser 2001 BLOAD utility 0.9
CSL Cartridge middleware
http://sourceforge.net/projects/creativisionemulator
User avatar
MADrigal
Site Admin
Posts: 970
Joined: Sun Sep 15, 2013 1:00 pm
Contact:

Re: Emulation questions

Post by MADrigal » Tue Jan 06, 2015 4:17 am

hahaha thanks for letting me know!
it was me to "fix" the listing! :D
i'll update the listing on the website, thanks.
User avatar
Mobsie
Posts: 474
Joined: Fri Jun 13, 2008 10:38 am
Location: Weinheim, Germany

Re: Emulation questions

Post by Mobsie » Tue Jan 06, 2015 9:35 am

haha, thats really cool!
@username@
Posts: 172
Joined: Tue Oct 22, 2013 6:59 pm
Location: Glasgow, Scotland

Re: Emulation questions

Post by @username@ » Fri Jan 09, 2015 10:32 pm

I have been looking at the Diagnostic carts for Video and Keyboard.

The first question is are these original VTech?

The second question is do they work on real machines?

If they do, there are some really interesting things we can learn from them.
˙uʍop-ǝpısdn sı ɹoʇıuoɯ ɹnoʎ 'sıɥʇ pɐǝɹ uɐɔ noʎ ɟı

The creatiVision Emulator 16.04.24
Salora Manager / Laser 2001 BLOAD utility 0.9
CSL Cartridge middleware
http://sourceforge.net/projects/creativisionemulator
User avatar
MADrigal
Site Admin
Posts: 970
Joined: Sun Sep 15, 2013 1:00 pm
Contact:

Re: Emulation questions

Post by MADrigal » Fri Jan 09, 2015 11:40 pm

Hello.

I own those carts and I have personally dumped them. They surfaced from the Zanussi tech lab in Italy. Zanussi was the Italian distributor of CreatiVision in 1983-1984. The carts were used to test consoles returned for repair/testing. I have been told that there was even a typewitten sheet with instructions, but it has gone lost. :(

I'm 100% sure that they are original, and made by VTech. They couldnt me made in Italy because CV sold for very very few months in Italy, and Zanussi was not specialised in computer games (they sold laundry machines and refrigerators) so it would be too much of an hassle for them to specifically hire contractors to design those diagnostic programs.

They must have been part of the agreement between VTEch an Zanussi.

I gues that the carts were produced in HK and then sent to the local distributors. So I assume there were 1-2 copies of each cart in Australia, Italy, Germany, Austria, Sweden, South Africa, and possibly Israel.

The carts come in original CV game cart shells, as well as original VTech PCBs.

And they work perfectly on real machines. They are included in my "Diagnosticart" multicart, so Tom and Michael can tell you how they work. Anyway, on the CV website, there's a page devoted to the "Diagnosticart" multicart, with screenshots of the programs running.

The Video diagnostic is lovely. It tests the common graphics mode in about 15 screens and the sprites generator.

The keyboard program is quite odd. When you boot it the first time, you see a blank page. You start typing on the keyboard, and a "visual keyboard" appears on the screen, composed by the keys you have already pressed. So in the end you should be able to see a complete keyboard.

If you reset the machine, the test mode changes. The full keyboard appears, and every time you press a key, that disappears until the moment you release the key. So the full keyboard is always on screen, and you see 1 missing key every time, then returns to normality.

Press reset again, and it goes back to mode 1. Very nice. :)

Hope this info helps!

==

There's a missing ROM dump, that is the CPU program. The EPROM got damaged when unsoldering. It's quite a long story, no need o enter into details.
Anyway I have partial dumps of the ROMs, which were made by me and other people, using a variety of EPROM readers.
Each and every byte misses bits 1 and 6 due to a damage in the EPROM wires package.

I have programmed an useful tool that displays the single bits in each byte, also visually. And you can change the bits values by simple clicking on them.
I would provide the EPROM and the tool (which is currently in use of a few MAME devs, anyway), if you want to have a look.

Right yesterday I got contacted by a MAME dev member who's trying to get my EPROM returned by a man who's been keeping it since 2009, and has never done anything to fix/read/repair it. Very sad and long story to tell.
User avatar
MADrigal
Site Admin
Posts: 970
Joined: Sun Sep 15, 2013 1:00 pm
Contact:

Re: Emulation questions

Post by MADrigal » Sat Jan 10, 2015 1:36 am

Here's where my precious EPROM is mentioned:

http://members.iinet.net.au/~lantra9jp1 ... index.html

-> entry 229.

Picture attached here.

The EPROM has been then decapped and the damage occurred to the microwires was confirmed. The DIE itself should be in perfect state, though.
You do not have the required permissions to view the files attached to this post.
@username@
Posts: 172
Joined: Tue Oct 22, 2013 6:59 pm
Location: Glasgow, Scotland

Re: Emulation questions

Post by @username@ » Sat Jan 10, 2015 2:49 am

Very sad about the CPU EPROM :\

However, great news on the other two!

The code on the Video diag is contradictory to what is expected. From reading the forums we are lead to believe that you need to wait between writes to the VDP. Tell that to the diags boys! :D

Code: Select all

ROM:B00C                 LDA     #0
ROM:B00E                 STA     $3001
ROM:B011                 LDA     #$80 ; 'Ç'
ROM:B013                 STA     $3001
ROM:B016                 LDA     #1
ROM:B018                 STA     $3001
ROM:B01B                 LDA     #$87 ; 'ç'
ROM:B01D                 STA     $3001
They just throw it an as fast as they can to the VDP.

Writing to the VDP VRAM does have a slight delay, of about 8cy!!!

Code: Select all

ROM:B038                 STA     $3000
ROM:B03B                 NOP
ROM:B03C                 NOP
ROM:B03D                 NOP
ROM:B03E                 NOP
ROM:B03F                 STY     $3000
ROM:B042                 NOP
ROM:B043                 NOP
ROM:B044                 NOP
ROM:B045                 NOP
ROM:B046                 STA     $3000
ROM:B049                 NOP
ROM:B04A                 NOP
ROM:B04B                 NOP
ROM:B04C                 NOP
ROM:B04D                 STY     $3000
Great news for the devs - and quite definitive.

The video cart does a memory check before starting the display diags, and tests that the 1KB RAM is ok. If it fails, it gives you a blue screen.
I've attached it, boring as it is - but you should hope you never see it :)

On the Keyboard diag, again it does a complete check on the PIA before you get to the main screen. If a key gives an invalid scan code, you get a brown border.

I'm having some trouble with equals sign, it seems to also produce a shadow character.

If that's what you see on real hardware, then I think I have completed the PIA re-write. If not, the scan code for equals should take no time to get.
You do not have the required permissions to view the files attached to this post.
˙uʍop-ǝpısdn sı ɹoʇıuoɯ ɹnoʎ 'sıɥʇ pɐǝɹ uɐɔ noʎ ɟı

The creatiVision Emulator 16.04.24
Salora Manager / Laser 2001 BLOAD utility 0.9
CSL Cartridge middleware
http://sourceforge.net/projects/creativisionemulator
User avatar
MADrigal
Site Admin
Posts: 970
Joined: Sun Sep 15, 2013 1:00 pm
Contact:

Re: Emulation questions

Post by MADrigal » Sat Jan 10, 2015 3:14 am

Very very nice testing report indeed! :D

Keyboard diagnostic: I had no idea that the brown border would be shown in case of "odd" PIA scancodes, very nice. The information was probably printed on the missing typewritten "instructions" sheet. Anyway, here's some additional bits of information for you, since you're focussing your attention in the PIA decode.
From my memory (but Tom and Mobsie would confirm this, since they currently have access to a Diagnosticart and a CV console - which I haven't), pressing any trigger on the joystick is exactly the same as pressing the "equivalent" keys on the keyboard, that is "equal", "tab", "shift" and "control"
What does the diagnostic do if you press any trigger, or any of those keys? Well it simply displays BOTH the pressed key symbol, *AND* the "rectangule" matching the trigger on the diagram.
I am sorry I cant be more specific, this only comes from my memory. I can't test that myself now, but I suppose that's what is also happening on your emulator! :)

Video test: very cool to read about the "cyan" screen. Again, it's an undocumented feature before, very very nice to read about it! :)
When the "ram test" is done, a "READY?" label should appear. From that moment, at every keypress, you'll get a new display screen testing VDP and RAM.
You will get a series of texts reading "YELLOW YELLOW YELLOW..." on a coloured background. Then "MAGENTA MAGENTA MAGENTA..." etc x a dozen of times (not sure if they're truly 15 times, I think that's less).
Then there are coloured squares filling the screen, I think they are 2-3 screens with small, medium and large boxes.
Then there's another screen with black-white boxes only
The last one is the sprites generator. That's the oddest test: when you press any key during the test, it stops and the demo does nothing else. You have to reset the machine.

Also from my memory (you could confirm or reject this), the diagnostic programs do not call the BIOS, and they have their own character sets, often not matching the "usual" ascii codes. For example, on the video diagnostic program you can only find ASCII data for the letters "R,E,A,D,Y,?". Is this correct?

Thanks much for spending your time on testing that, and I'm also very happy to use the screenshot of the keyboard diagnostic, which I would include in the CreatiVEmu website, "screenshot" section of the ROMs page.

*EDIT* no need to get a screenshot of the video diag. I have it already. *EDIT*

:)

PS: yes, very bad on the CPU eprom. I won't even mention how much I have spent and how much I had to struggle to get the cartridges, in terms of discussing and making agreements with the seller. But actually they were a bargain - whatever price would be a bargain for such unique items. I had to buy them, regardless of the price, because I had to share them with the community.
We were very very unlucky with the unsoldering. Never never never happened before to damage an EPROM by simply unsoldering it. That's so sad... :(
User avatar
MADrigal
Site Admin
Posts: 970
Joined: Sun Sep 15, 2013 1:00 pm
Contact:

Re: Emulation questions

Post by MADrigal » Sat Jan 10, 2015 3:22 am

And oh, one more bit of information on the keyboard diagnostic.

Again from my memory: when you shift the "mode" from full keyboard to empty keyboard or viceversa, the border colour changes. Not sure if that's what you call "a brown border".


One last thing on the CPU diagnostic: that also prompts "READY?" soon before starting the test. Then you press any key, and if the CPU works fine, you'll see some ASM code on the screen. I really dont remember the sequence of ASM code. Me dumb because I have never shot a photo of that screen.
User avatar
Mobsie
Posts: 474
Joined: Fri Jun 13, 2008 10:38 am
Location: Weinheim, Germany

Re: Emulation questions

Post by Mobsie » Sat Jan 10, 2015 7:52 am

Hi all, i have no "Diagnosticart" i have ONLY the multipart from Luca.
From my testing this:

LDA #0
ROM:B00E STA $3001
ROM:B011 LDA #$80 ; 'Ç'
ROM:B013 STA $3001
ROM:B016 LDA #1
ROM:B018 STA $3001
ROM:B01B LDA #$87 ; 'ç'
ROM:B01D STA $3001

works because they first send the #0 and then the needed information. And the delay of 8cy is right, but i hate to see NOP`s in an program. But yes, is easy to overrun the VDP during screen display, because of this i do all in the interrupt.
Post Reply