Yet another SubElectro MC type Fantazia/Pisces ???

NivagSwerdna

Active member
Feedback
1 (100%)
Credits
744CR
Tried to make some progress but life keeps getting in the way... Anyway... I had previously removed the two 8216 buffers at 8F & 8H whilst diagnosing the problems writing to system RAM, which came down to the faulty WREN logic discussed above. Rather than replace these I decided to fit a 74LS245 at 9B. I really hate the way the 8216s run so hot so although this probably isn't necessary it is OK in my book.

CaptureBufferReplacement.png


Haven't got around to testing it yet... that's something for later.
 

NivagSwerdna

Active member
Feedback
1 (100%)
Credits
744CR
Whilst pondering graphics I thought it worth dumping the colour palette PROM at 6L. This is a 82LS123 or equivalent... in this case a very crusty MMI6331.

CaptureFantaziaPROM.png


Removed from the socket and to be honest the condition is pretty terrible. Spent ages trying to clean the legs with a fibreglass pencil and contact cleaner but still am getting slightly indeterminate results in the Retro Logic Chip Electron Wrangler.

Eventually managed to get...

0000 : 00 33 c3 f6 00 17 c0 3f 00 d8 07 3f 00 c0 c4 07 00 c0 b0 1f 00 1e 71 07 00 f6 07 f0 00 76 07 c6




SHA1 Hash: d4ec6a54f72640e5b485aa59e206c090e67ff640




With your tongue at the right angle this is repeatable so probably what is in the PROM...




A visit to Hamster's http://romident.coinopflorida.com/ suggests this is not Fantazia but Pisces. Pisces appears to be another Subelectro game so that sounds feasible; what's a few colour differences between friends!?!




I think Fantazia should be...




0000 : 00 07 38 F6 00 16 C0 3F 00 D8 07 3F 00 C0 C4 07 00 C0 A0 07 00 38 C0 07 00 F6 07 F0 00 76 07 C6




It's not the same but shares some colours; if I can get it cleaned up I might use it in the interim; otherwise I need to find a 82S123 which are increasingly unobtainium.




Maybe this is actually a Pisces rather than Fantasia? Pisces seems to have different GFX sprite banking? Not sure!

NivagSwerdna2022-08-07 21:52:52
 

NivagSwerdna

Active member
Feedback
1 (100%)
Credits
744CR
Burnt some ROMs...

CaptureROMBurning.png


What I had forgotten is that these ROMs are quite tricky to burn...

CaptureROMBurning2.png


Although they claim to be 21V 2716s so theoretically compatible with the popular MiniPro TL866A they behave a bit strangely when using the MiniPro. Indeed even when the VPP is cranked up to 21V they seem to program and verify but subsequent reading in another device shows they didn't program correctly. I originally just thought they were broken/fake but if you use an old fashioned programmer (time to bring out the Data I/O 29B!) then they program correctly.

NivagSwerdna2022-08-10 11:47:53
 

NivagSwerdna

Active member
Feedback
1 (100%)
Credits
744CR
Another weekend... another chance for a couple of hours with the arcade project...

I've been testing memory... In particular the memory at 0x9000 (would have been 0x5000 if this wasn't pretending to have a moon cresta/fantasia memory map)...

0x9000-0x93FF1024Mirror, RAM Write, Shared0x0400, galaxian_videoram_w, videoram

To cut a long story short... it wasn't working... Now accessing VRAM is a bit trickier than system RAM since it is accessed by the video circuitry when painting the screen so you have to take two factors into consideration...

  • Only write to VRAM during a blanking period (either H or V blanking)
  • If you try and write when not HBlanking then defer until the next HBlank.

Now the second of these we have already encountered... that's the VRAM/WEN/WREQ shenanigans that we fixed earlier. The first is a bit subtle... The address bus for VRAM is either driven by the CPU or by the video circuitry and this is controlled via nCMPBLK aka Composite Blank.

The choice of CPU or Video Address bus is done by applying nCMPBLK to the muxes at 2F/2E/3E.

CaptureVAddrMux.png


Now the memory operations may be failing due to a problem on the data, address or control side but I'm going down the address route first. (I did probe the data muxes and they seem lively so will come back to them)...

Now the choice of CPU or video is done using nCMPBLK and this is derived from the video counters...

CaptureCMPBLK.png


Plenty to go wrong there...

Pulled out the big guns... My cheapo 16CH logic analyser... (ebay USB 2.0 CY7C68013A less than a tenner)

CaptureFX2Logic.png


(IMHO The trick with logic analysers is to use a chip clip e.g. https://warwickts.com/599/900738-16-Pin-Duck-Bill-06-Gold-IC-Test-Clip they aren't cheap but the alternative is having all your wires fall off which is very bad for your mental health).

So looking at the 74LS74 first...

CaptureFantasia5C.png


This is 5C... pin 5 is nVBLANK and it nicely has a period of around 60Hz, pin 6 is the inverse i.e. VBLANK so pin 6 should feed 6D nicely...

Now moving to 6D...

CaptureFantasia6D.png


We see VBLANK feeding into pin6 and pin5 looks like it could be HBLANK (at 15kHz) but pin4 is stuck high. Damm should have been able to spot that with the logic probe...

So..

CaptureCrustyLS02.png


replaced crusty 7402 with a nice shiny 74LS02 at 6C..

CaptureFantasia6DReplaced.png


Now p4 looks like a nice nCMPBLK... i.e. active low composite blanking...

And guess what...

Fill: 9000=0400 FF

Read: 9000=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Fill: 9000=0400 55

Read: 9000=55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555

Fill: 9000=0400 AA

Read: 9000=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

Fill: 9000=0400 II

Read: 9000=000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF

Fill: 9000=0400 00

Read: 9000=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

VRAM is behaving now. I do love it when a plan comes together. (TBH was a bit lucky there)

Time for "Beers and Sunshine"

NivagSwerdna2022-08-12 21:05:29
 

Retromanic2

Active member
vacBacker
Feedback
5 (100%)
Credits
163CR
How do you remove the crusty IC's without cutting the legs..

Do you have a special gadget.

I seem to get in a right mess and end up getting the dremal out....
 

NivagSwerdna

Active member
Feedback
1 (100%)
Credits
744CR
Retromanic2 said:
How do you remove the crusty IC's without cutting the legs..

Short Answer: This one was in a socket
smiley36.gif


Middle Answer: If you are concerned then snip the legs and then de-solder one at a time

Long Answer: Add flux and some new solder to the pins on the underside, then remove as much solder as you can with a desoldering gun (I have a SC-7000Z which I got off ebay but anything that can pull a vacuum whilst heating would do; a solder sucker an soldering iron if used correctly will do), then I go on the other side and add flux along the pins and then gently heat it up using 350C hot air and when the flux starts smoking I very GENTLY lever the chip out by prying alternately at either end. Works for me. Be very careful of temperature... too much temperature and you will start delaminating the board and ripping off pads... too little and you will rip off pads... need to get a goldilocks temperature... if you are worried... snip the pins and do it one at a time.

Share & Enjoy

Nivag

NivagSwerdna2022-08-14 15:12:32
 

NivagSwerdna

Active member
Feedback
1 (100%)
Credits
744CR
A little bit of testing but short of time this weekend...

Tested reading the Switch registers... there may be mapping issues since this is my prototype JAMMA adapter and JAMMA wrangler board..

[font="Courier New, Courier, mono"]R: B000=FF R: A000=00 R: A800=C0[/font]

[font="Courier New, Courier, mono"]
[/font]

[font="Courier New, Courier, mono"]R: B000=FF R: A000=00 R: A800=C4 P2 Left[/font]

[font="Courier New, Courier, mono"]R: B000=FF R: A000=00 R: A800=C8 P2 Right[/font]

[font="Courier New, Courier, mono"]R: B000=FF R: A000=00 R: A800=D0 P2 Btn 1[/font]

[font="Courier New, Courier, mono"]R: B000=FF R: A000=00 R: A800=C1 P1 Start[/font]

[font="Courier New, Courier, mono"]R: B000=FF R: A000=00 R: A800=C2 P2 Start[/font]

[font="Courier New, Courier, mono"]
[/font]

[font="Courier New, Courier, mono"]R: B000=FF R: A000=10 R: A800=C0 P1 Btn 1[/font]

[font="Courier New, Courier, mono"]R: B000=FF R: A000=04 R: A800=C0 P1 Left[/font]

[font="Courier New, Courier, mono"]R: B000=FF R: A000=08 R: A800=C0 P1 Right[/font]

[font="Courier New, Courier, mono"]R: B000=FF R: A000=01 R: A800=C0 Coin 1[/font]

[font="Courier New, Courier, mono"]R: B000=FF R: A000=02 R: A800=C0 Coin 2[/font]

[font="Courier New, Courier, mono"]R: B000=FF R: A000=80 R: A800=C0 Service[/font]

Looks feasible

NivagSwerdna2022-08-14 21:25:03
 

NivagSwerdna

Active member
Feedback
1 (100%)
Credits
744CR
Memory problems with object RAM...

Removed 2101-2 at 4F and 5F and tested them and they appear DEAD

Replaced with two 2101 devices I have lying around which although I previously marked as bad seem to test OK now.

Throw out these bad boys...

Bad2101s.png


and in with the 'almost' new...

CaptureBetter2101s.png


And now the memory checks are passing...

VRAM 0x9000 length 0x0400

m: 9000=OK

OBJ RAM 0x9800 length 0x0100

m: 9800=OK

System Memory 0x8000 length 0x0400

m: 8000=OK

So time to move on to video generation...
 

NivagSwerdna

Active member
Feedback
1 (100%)
Credits
744CR
OK... so the video doesn't look great...

the first thing I am going to do is ditch the Sprite RAM daughterboard... It has horrible standoff connector legs and I think the RAM is the same vintage as the 27LS00 chips in the Galaxians. The 27LS00's run hotter than the sun so I think this is a meaningful update...

CaptureSpriteDaughterboard1.png


CaptureSpriteDaughterboard2.png


Cleaned up top and bottom of the board and installed five sockets (must order some more of those)...

CaptureSpriteDaughterboardSockets.png


The bypass cap at the top of the board seems to have been beheaded Thomas Becket style so un-soldered one leg and might replace it at another time.

Now to make up a new Sprite board... pitch is 300mil...

(The D2125A chips possibly have some re-sale value? Will test them)

NivagSwerdna2022-08-17 18:11:17
 

NivagSwerdna

Active member
Feedback
1 (100%)
Credits
744CR
Replaced Sprite RAM...

CaptureFantasiaSprites.png


Now for the long haul to work out why the rendering isn't working... characters and colours first...

Screenshot_2022-08-17_21-10-35.png


Not obvious

BTW... I tried to test the D2125As... but they seem all broken which is a bit unlikely so maybe I cannot test properly...
 

Macro

Active member
vacBacker
Feedback
4 (100%)
Credits
1,982CR
Looks like it's only drawing the first 4 pixels of each character - fitst screenshot looks like it says moon cresta afootm in the middle of the screen - or something like that anyway!

I'd check the 194's (2H to 2L) I think that do the parallel to serial conversion, seems like later bits are being lost, and maybe the 157 at 3L
 

NivagSwerdna

Active member
Feedback
1 (100%)
Credits
744CR
Macro said:
Looks like it's only drawing the first 4 pixels of each character - fitst screenshot looks like it says moon cresta afootm in the middle of the screen - or something like that anyway!

I'd check the 194's (2H to 2L) I think that do the parallel to serial conversion, seems like later bits are being lost, and maybe the 157 at 3L
Indeed the page should show "MOON CRESTA TESTING".
I note that outputs of 3J seem to be low but that would probably be more of a character selection problem. I will replace that first and then follow your lead.... that will have to wait until I have some spare time... maybe tomorrow night...
 

NivagSwerdna

Active member
Feedback
1 (100%)
Credits
744CR
Replaced the 74LS157 at 3J. The one removed does test bad so that was a correct call.

Capture_Replace3J.png


As anticipated this does improve the selection of characters... the test screen that has mostly blanks and then some text now looks... mostly blank... that's a good thing!

Screenshot_2022-08-18_19-41-11.png


Now to interpret the hint I was given by Macro...
 

NivagSwerdna

Active member
Feedback
1 (100%)
Credits
744CR
Removed 3J and 3K as both seemed to lack signs of life on pin 15.. one stuck high the other low...

Tested them in the chiptester and both show BAD

I have some new ones ready to rumble but don't have time to install the sockets and test tonight... one for tomorrow night...

Capture3J3K.png


NivagSwerdna2022-08-18 21:29:28
 

NivagSwerdna

Active member
Feedback
1 (100%)
Credits
744CR
OK that's 3J and 3K replaced...

CaptureNew194s.png


and we get a nice improvement to the rendering of the test screen...

Screenshot_2022-08-19_10-35-53.png


The colours are wrong... I think the top two pixels are wrong which suggests that possibly 2L or is it 2H needs replacing as well...

Another test screen shows this is a consistent issue...

Screenshot_2022-08-19_10-37-50.png


Might have to think about that for a bit before jumping in.
 

NivagSwerdna

Active member
Feedback
1 (100%)
Credits
744CR
So it was a gamble... either 2H or 2L... I should have thought about it more because it was obvious really but I gambled on 2H and lost... removed the chip and it works fine... removed 2L and it is duff. So all four 74LS194s have pretty new DIP sockets, 3 have been replaced by new and I put 2H back because I think it deserved another go. 75% of the shift registers knackered in the video generation part... I think this was probably a bit of a duff eBay purchase but I'm in it for the long haul.

CaptureTroubleAtVideoSerialisationMill.png


But now looking pretty...

CaptureAllDucksInARow.png


And characters now rendering better...

Screenshot_2022-08-19_15-07-53.png


Did I expect white to be the colour? Not sure... will have to ponder that...

Screenshot_2022-08-19_15-08-38.png


And now I have colours... not sure if they are the correct ones... but I do have colours.

What next? Bullets and Shells maybe...

PS

I think the white stripe is actually an incorrectly rendered bullet

NivagSwerdna2022-08-19 15:29:25
 

NivagSwerdna

Active member
Feedback
1 (100%)
Credits
744CR
So here's a look at Bullets and Missile...

Screenshot_2022-08-19_18-28-08.png


Some things work... one is white and the other is yellow... they seem to have some width... some things don't work... they are not in the correct location and they span the whole screen width!

Checked the 74LS161s at 5R/4R and 5S/4S and the outputs all look lively.

Now 5P is a dual flip flop (74LS74) so the easy thing to check it can drive outputs is to look at p5 (1Q) and p6 (n1Q)... so these should ALWAYS be the complement of each other... likewise p9 (2Q) and p8 (n2Q)... likewise these should always be the opposite of each other... they weren't so swapped 5P... (the old one tested bad, gate 2 knackered, so that was correct).

A large amount of the logic appeared to be working but the location was wrong so turned my attention to MSLD and the 74LS74 at 3D...

Capture3D.png


Managed to remember to screenshot this time... you can see that p5 and p6 are nice mirrors of each other but p8 and p9 do not look good. Removed chip and it tests... bad... Replaced 3D...

Capture3DReplaced.png


Ran the test program again...

Screenshot_2022-08-20_20-17-20.png


Oh that is so nice... correctly positioned bullets/shells and missile.

TBH I'm quite impressed that so much of this part of the circuit is working so well... The positioning of the shells/missile requires the adder circuit 4N/5N to work as well as numerous 74LS161s and these seem (touch wood to be OK)...

Sprites next...

Screenshot_2022-08-20_20-44-43.png


Not bad... but show a degree of instability (sparkles) so something slightly off... Making good progress now though! There are some chunks missing too and definite stripy lines.

NivagSwerdna2022-08-20 21:03:46
 

NivagSwerdna

Active member
Feedback
1 (100%)
Credits
744CR
A slight diversion... I had noticed that there was no star field... and I really love star fields... (In fact the lack of a starfield in the MAME version of tutankham is what motivated me to buy my first PCB... something I still haven't around to that >5y later)...

Anyway...

Logic probe on A1 and B1... B1 shows stuck outputs... B1 actually drives the pixels so that is obviously not good...

Crusty B1...

CaptureCrustyB1.png


Surprisingly both A1 and B1 are socketed... anyway removing B1 shows it to have missing legs... possibly jammed in the socket. Replaced B1 with a shiny 74LS164... probably should have replaced the socket but it seems to still fit...

Screenshot_2022-08-21_13-49-28.png


Now we have stars... wonderful
 
Top