Gigatron Clone Ideas

Using, learning, programming and modding the Gigatron and anything related.
Forum rules
Be nice. No drama.
Lerc
Posts: 15
Joined: 21 May 2020, 19:38

Re: Gigatron Clone Ideas

Post by Lerc »

2x VGA? Is that running 120Hz with 63Khz ScanLines? If so, that's a pretty clever RF adapter.
Lerc
Posts: 15
Joined: 21 May 2020, 19:38

Re: Gigatron Clone Ideas

Post by Lerc »

alastair wrote: 22 Jun 2022, 13:47 I agree with @at67 though. Breaking compatibility is a rabbit hole I don't want to go down.
Fair enough, It's a rabbit hole that I'm peering into (which is why I've been looking at what instructions are actually used) and I can fully understand the trepidation.

I might start a new thread for some of my crazy ideas.

(but it seems posts here are rate limited So here's the brief)
Multiple Input, Reuse U11b for Input Selection. One new input is latched from previous instructions ALU bits 1..7:Carry (easier shift Right and carry detect)
Multiple Output [Y:X++},OUT sends to a different chip than [D],OUT First is pure Pixel data, HSync and VSync go to the Second,
16 colour hires. Pixel Output goes through a 74hc157 (needs a clock double the CPU)
at67
Site Admin
Posts: 647
Joined: 14 May 2018, 08:29

Re: Gigatron Clone Ideas

Post by at67 »

Well done on getting it to boot ROMv1!
alastair
Posts: 68
Joined: 10 Oct 2019, 14:28

Re: Gigatron Clone Ideas

Post by alastair »

bmwtcu wrote: 28 Jun 2022, 01:05 Congrats! I'm curious... what make/model RF modulator?
I got the adapter a few months ago from AliExpress. It's about $20 with shipping - https://www.aliexpress.com/item/3256803136528164.html

It's the only "upscaler" I have that will support 120Hz refresh. I also have a cheap Visio TV that seems to support anything you throw at it. It doesn't have a VGA input, but you can use any of the cheaper VGA-to-HDMI converters that just pass the video timing straight through. It can also handle the 120Hz refresh.
visio.jpg
visio.jpg (206.92 KiB) Viewed 1089 times
The VGA input on my other LCD monitors seem to top out around 75Hz. I have a CRT monitor that will go to around 115Hz, but not quite to 120Hz.
lacie.jpg
lacie.jpg (299.05 KiB) Viewed 1089 times
I also took a picture of the "Hi-res" mode when it was on the CRT. I don't think there's any software to support this yet, but it's one of the output options with a simple pixel doubler to 8 colors per pixel.
hires.jpg
hires.jpg (242.15 KiB) Viewed 1089 times
alastair
Posts: 68
Joined: 10 Oct 2019, 14:28

Re: Gigatron Clone Ideas

Post by alastair »

I do seem to have one issue though. The pictures are slightly scrambled and the machine crashes after it displays the first image. The new picture app on Rev5A works fine. The following images show Rev3 and Rev4. It will crash as soon as this picture starts scrolling.
pic3.jpg
pic3.jpg (140.36 KiB) Viewed 1079 times
pic2.jpg
pic2.jpg (147.54 KiB) Viewed 1079 times
pic1.jpg
pic1.jpg (125.08 KiB) Viewed 1079 times
bmwtcu
Posts: 145
Joined: 01 Nov 2018, 12:02

Re: Gigatron Clone Ideas

Post by bmwtcu »

https://forum.gigatron.io/viewtopic.php?p=2301#p2301

Hmm... Looks like exactly the same thing. I haven't seen this myself, though I have had other strangeness happen specifically on ROMv3 Pictures when it showed Jupiter. Are Blinkenlights still running? I assume that you already received your Famicom controller. Try resetting by holding START. That worked for me and tells me that the Gigatron is still running. I never looked into it. I don't remember seeing it in ROMv5a/SDROM, but as you said the Pictures app was also totally reworked.

According to https://gigatron.io/media/pluggy-manual.pdf you should be able to hold Page Up to reset.
Last edited by bmwtcu on 28 Jun 2022, 16:32, edited 2 times in total.
alastair
Posts: 68
Joined: 10 Oct 2019, 14:28

Re: Gigatron Clone Ideas

Post by alastair »

Thanks for the link! I thought I had seen this somewhere before. I installed the ATtiny85 on the board and I'm using a PS/2 keyboard to get to Pictures. Jupiter crashes the video timing, but the blinken lights still run (weird). All the other built in programs work fine, so it must be some weird timing issue. Back to the "debugging software with an oscilloscope" :cry:

Update: The LCD is very sensitive to timing glitches, so I switched back to the RF/CRT. The H-sync video timing is just glitchy and it seems to get stuck before Jupiter has finished scrolling. This is where it stops and hangs. Holding page up will reset back to the menu.
jupiter.jpg
jupiter.jpg (109.97 KiB) Viewed 1058 times
lb3361
Posts: 360
Joined: 17 Feb 2021, 23:07

Re: Gigatron Clone Ideas

Post by lb3361 »

The v3/v4 Picture application makes heavy use of the SYS function SYS_Read3 and SYS_Draw4 to display four consecutive pixels. The v5a version does not. In particular SYS_Read3 uses a complicated system of trampolines that might test the jmp instruction.
alastair
Posts: 68
Joined: 10 Oct 2019, 14:28

Re: Gigatron Clone Ideas

Post by alastair »

I was suspecting SYS_Draw4, specifically this line. Somehow the Y register gets offset by 2 pages, but on closer inspection it looks like there's something going on with the pixel preceding it.

This might be an issue with SYS_Read3_40 reading the third (or is it first?) byte from the wrong location. The image is 160 pixels across, packed as two lines of 120 bytes per page. The two pixel offset in the 4th column would be a single page offset when reading.
alastair
Posts: 68
Joined: 10 Oct 2019, 14:28

Re: Gigatron Clone Ideas

Post by alastair »

I haven't put the oscilloscope on it yet... but here's my theory.

SYS_Read3_40 reads 3 bytes by doing two trampolines with code between 0x79-0x7F and one trampoline at the end of the page between 0xFA-0xFF (the pixels are stored in 0x00-0x7F and 0x80-0xF7). Here's the problem: There's a jump at 0x7F to 0xFA. So what happens? The lowest program counter (U3) contains 0xF and the TC is high. The jump loads 0xF into the second program counter (U4) and this will cause the TC on the second counter to glitch. The glitch should happen after the clock edge, but it's possible this is propagating through the other two program counters (U5 & 6) and causing them increment.

This type of bug would trampoline the third byte read by SYS_Read3_40 from the next page up. This is what appears to show up in the image. The third byte represents the forth column (and some of the third). The black notches along the bottom are the top of the Jupiter image. More problematic though; when loading Jupiter the jump goes beyond the trampoline code in the image and causes the vCPU to crash.
Post Reply