Jump to content
IGNORED

Intellivision RTO-MultiCart - new multicart


Rev

Recommended Posts

Nothing else to suggest you, in my opinion the only way to understand what's wrong is comparing the datasheet of both original VDU and the rearranged on daughterboard one, to get the differences. 

May be that the daughterboard solution was not 100% compatible with the original IC, that's why would be interesting check with an original Dracula cart. Look if some of your friend could rent it for some test!

Link to comment
Share on other sites

  • 2 weeks later...

Ok, so I've made some more tests now!

I made an interesting discovery: When I recapped the "normal" PCB, I used a ceramic 1uF 50V instead of a normal bipolar capacitor. That worked in all games I tried, but I still had to press reset to start the RTO but, more importantly, it made graphical glitches in Antarctic Adventure. When I switched to a normal 1uF 50V BP cap instead, everything works fine. - Well, almost - RTO still won't boot until I press reset.

 

So I've got three PCB:s that are freshly recapped (with all electrolytic capacitors) and tested with RTO now. All three PCBs seems to work fine on all original carts I've tested.

PCB1 - A PAL PCB with daughter board instead of color-chip: Starts RTO automatically without reset, most games works fine but glitches in Micro Surgeon, Dracula and Antarctic Adventure from RTO. (Original Micro Surgeon works fine)

 

PCB2 - Another PAL PCB with daughter board instead of color-chip: Require reset to start RTO and games from it. Most games I've tried from RTO glitches and can't get past select players-screens. Micro Surgeon, however, seems to work perfectly on this PCB from the RTO. Dracula and Antarctic Adventure crashes right at the intro-screens.

 

PCB3 - A "normal" PAL PCB with a dedicated color chip: Still require reset to boot RTO and games from it, even after brand new 1uF 50V BP capacitor. But ALL games I've tried works without any glitches now.

 

So I don't think I'll do any more testing now, as I've popped in the fully working PCB and put my Intellivision together again.

If anybody finds a way to boot RTO without having to reset, please let me know 🙂

 

I've attached videos from when I tested Antarctic Adventure and Micro Surgeon on PCB2.

Edited by Tissemon
  • Like 2
Link to comment
Share on other sites

2 hours ago, Tissemon said:

Ok, so I've made some more tests now!

I made an interesting discovery: When I recapped the "normal" PCB, I used a ceramic 1uF 50V instead of a normal bipolar capacitor. That worked in all games I tried, but I still had to press reset to start the RTO but, more importantly, it made graphical glitches in Antarctic Adventure. When I switched to a normal 1uF 50V BP cap instead, everything works fine. - Well, almost - RTO still won't boot until I press reset.

 

So I've got three PCB:s that are freshly recapped (with all electrolytic capacitors) and tested with RTO now. All three PCBs seems to work fine on all original carts I've tested.

To be clear, are you speaking of all (the bypass) capacitors, or a capacitor on the reset line?

 

Also, to be clear, the ceramic capacitor had glitches with Antarctic Adventure, and the electrolytic capacitor worked well with Antarctic Adventure? (I guess I'm getting confused by "normal bipolar capacitor"... maybe you meant polarized (electrolytic?) capacitor?)

 

Link to comment
Share on other sites

1 hour ago, Tissemon said:

Ok, so I've made some more tests now!

I made an interesting discovery: When I recapped the "normal" PCB, I used a ceramic 1uF 50V instead of a normal bipolar capacitor. That worked in all games I tried, but I still had to press reset to start the RTO but, more importantly, it made graphical glitches in Antarctic Adventure. When I switched to a normal 1uF 50V BP cap instead, everything works fine. - Well, almost - RTO still won't boot until I press reset.

 

Very strange, RTO v. 1.1 does automatic reset at boot and after rom selection, or when pressed button n. 3! 

Do none of them works with 1uf bipolar electrolytic caps?

Do an original Intellivision Cartridge boot itself without reset button? if not, it's not an RTO issue.

And, i used both bipolar and polaryzed 1uf electrolytic capacitor in my intellivision and worked fine with automatic reset.

 

Link to comment
Share on other sites

1 hour ago, aotta said:

Very strange, RTO v. 1.1 does automatic reset at boot and after rom selection, or when pressed button n. 3! 

Do none of them works with 1uf bipolar electrolytic caps?

Do an original Intellivision Cartridge boot itself without reset button? if not, it's not an RTO issue.

And, i used both bipolar and polaryzed 1uf electrolytic capacitor in my intellivision and worked fine with automatic reset.

 

None of my three PCBs booted automatically without reset with original capacitors.

When I had recapped all three, one of them boots automatically.

Two of my friends have machines with original caps, and they also require manual reset to start.

 

I think I recall you or somebody else write something about the resistor in R6 not being needed - I've got a resistor there, could that be the reason why I have to reset?

Link to comment
Share on other sites

2 hours ago, 5-11under said:

To be clear, are you speaking of all (the bypass) capacitors, or a capacitor on the reset line?

 

Also, to be clear, the ceramic capacitor had glitches with Antarctic Adventure, and the electrolytic capacitor worked well with Antarctic Adventure? (I guess I'm getting confused by "normal bipolar capacitor"... maybe you meant polarized (electrolytic?) capacitor?)

 

I've replaced all the electrolytic capacitors (new electrolytic 4x10uF 63V on the PCBs with daughter board and 3x10uF 63V on the normal PCB. As well as the 47uF 25V near the RF modulator. And the 1uF Bipolar cap - that was the one that I first replaced with a ceramic cap and got glitches in Antarctic Adventure. I then removed the ceramic 1uF again and replaced it with an electrolytic 1uF BP, and after that there were no glitches at all in Antarctic Adventure. On the normal PCB, that is. On the PCBs with daughter boards there were still glitches, both with ceramic 1uF and electrolytic 1uF.

Link to comment
Share on other sites

21 minutes ago, Tissemon said:

None of my three PCBs booted automatically without reset with original capacitors.

When I had recapped all three, one of them boots automatically.

 

No, i mean original "cartridge", not capacitor.... do you need to test with an intellivision cartridge if it boot to the splash screen of the game without the reset button!

The reset circuit in intv is pretty simple: the reset line is keep high as soon as C26 is charged by R15 resistor connected to 5v. All cartridges (and RTO, LTO, etc.) simply pull low to GND the line from connector (line pointed by the green arrow in the pitcure) for reset:

ResetCircuit.png.060df3408377bad4eebc3c528dbecf44.png

The reset button S1 bypass the C26 so it works even with a bad capacitor or resistor.

I added a resistor in RTO for further test when my initial attempt to reset the intellivision was a failure, but then i discovered i had a bad C26 (like the 90% of the intellivisions i saw all around ;) ). 

Link to comment
Share on other sites

23 minutes ago, Tissemon said:

I've replaced all the electrolytic capacitors (new electrolytic 4x10uF 63V on the PCBs with daughter board and 3x10uF 63V on the normal PCB. As well as the 47uF 25V near the RF modulator. And the 1uF Bipolar cap - that was the one that I first replaced with a ceramic cap and got glitches in Antarctic Adventure. I then removed the ceramic 1uF again and replaced it with an electrolytic 1uF BP, and after that there were no glitches at all in Antarctic Adventure. On the normal PCB, that is. On the PCBs with daughter boards there were still glitches, both with ceramic 1uF and electrolytic 1uF.

Okay... so you're talking exclusively about capacitors within the Intellivision consoles?

 

Link to comment
Share on other sites

39 minutes ago, aotta said:

No, i mean original "cartridge", not capacitor.... do you need to test with an intellivision cartridge if it boot to the splash screen of the game without the reset button!

 

Oh, sorry.

PCB1 is the one I've tested the most - with original caps it would boot almost all my games without reset, but not Skiing and RTO. After recap, both Skiing and the RTO booted automatically.

The other 2 PCB, I only tested Skiing and some other games, and they all boot automatically, both before and after recap. It's just the RTO that needs a manual reset to start.

 

I just tested with R6-resistor on the RTO removed, but that didn't make any difference.

Link to comment
Share on other sites

43 minutes ago, 5-11under said:

Okay... so you're talking exclusively about capacitors within the Intellivision consoles?

 

Yes, the main problem with Intellivision (and many other consoles) is bad electrolytic capacitors, so I've changed all the internal ones in my Intellivision.

  • Like 1
Link to comment
Share on other sites

43 minutes ago, Tissemon said:

I just tested with R6-resistor on the RTO removed, but that didn't make any difference.

Well, the difference is that original carts always tie pin 12 and gnd linked, while RTO drive the line to GND only when needed.

You could try a lower resistance to R6 (100 ohm or less), or even a direct link (a wire or a zero ohm resistor) only to check if in that case the RTO starts. 

[added]

you could also try to change the delay time at line 710 and 713 of "ino" code: i made a lot of tests and the value of 6 and 2 milliseconds for the on/off seemed the best for me, but probably different values would work better in your case.

Edited by aotta
added a note
Link to comment
Share on other sites

1 hour ago, aotta said:

Well, the difference is that original carts always tie pin 12 and gnd linked, while RTO drive the line to GND only when needed.

You could try a lower resistance to R6 (100 ohm or less), or even a direct link (a wire or a zero ohm resistor) only to check if in that case the RTO starts. 

[added]

you could also try to change the delay time at line 710 and 713 of "ino" code: i made a lot of tests and the value of 6 and 2 milliseconds for the on/off seemed the best for me, but probably different values would work better in your case.

Thanks for the suggestions!

I just tried to change the delay in the firmware - tried to change them one at the time up and down. One value up or down didn’t seem to make any difference, but two values up or down and it wouldn’t work at all. So I restored the old values of 6 and 2.

I’ll try a resistor with lower value tomorrow. 

Link to comment
Share on other sites

For the reset line on my boards, I made the following changes for the RTO U5 chip:

  • Pin 1 is set to 3V3 (single direction, A to B)
  • Pin 2 is set to GND (input to the chip - A)
  • Pin 18 is set to rst' (reset to the cartridge connector - B)
  • Pin 19 is RST (output enable to the chip, from the Teensy)

Some of my notes, when discussing with aotta early on:

  • I did hook up a switch from rst' to GND, and another from rst' to 3V3 (don't push both at the same time ). I was unable to reset the board by alternating from GND to 3V3 and back again.
  • I also hooked up a switch from rst' to GND for a Mattel Intellivision game (after disconnecting from where it already was connected directly to GND), and was able to reset the console consistently.
  • So, either the 3V3 is not enough to be able to toggle the rst' line back to HIGH, or there's something interfering with the ability to bring the rst' line to HIGH. I'm going to try to disconnect some of the circuitry and test again with GND and 3V3, and also with 5V.
  • Update: I did remove the rst' line from the RTO circuitry, and leaving rst' untouched works fine (as per Intellivision schematic, RESET will go to 5V = HIGH). Then, touching rst' to GND resets the board. I've got a new thought [was initially going to use an analog switch or something like that], that I'll try tomorrow, to keep the same chip, but 1) connect the Teensy to the OEbar line (CE on your schematic) of the 74LVC245, 2) keep DIR2 HIGH (A->B), 3) set A as GND, and 4) set B as rst'. When OEbar is HIGH (inactive), rst' will be high impedance from the board. When OEbar is LOW (active), rst' will go LOW, and should reset. Easy enough to try, at least, because all the parts are there.
  • [and the next day] Well, that update was successful. Interesting that even before, it worked when exiting a game, but not at the other times. Anyway, now it resets the console whenever required.

After some changes to the code (see the comments, it seems to work fairly well). It still might need a bit of tweaking for optimization:

 

////////////////////////////////////////////////////////////////////////////////////
//                     RESET
////////////////////////////////////////////////////////////////////////////////////

void resetCart() {
  digitalWriteFast(RST_PIN,HIGH);
  digitalWriteFast(Status_PIN,HIGH);
  delay(30);  // was 20 for Model II; 30 works for both

  digitalWriteFast(RST_PIN,LOW);
  delay(3);  // was 2 for Model II; 3 works for both
  while (digitalReadFast(MSYNC_PIN)==1) {};

  delay(1);  // was 1 for Model II
  digitalWriteFast(RST_PIN,HIGH);
  digitalWriteFast(Status_PIN,LOW);
}
 
The following lines are also in the code, at the appropriate locations:
 
#define RST_PIN   7 //GPIO2_17
pinMode(RST_PIN,OUTPUT);
digitalWriteFast(RST_PIN,HIGH);

 

This seems a lot simpler than the original code.
 
Edit: I have no other components on the reset line connected to the Intellivision cartridge port.
Link to comment
Share on other sites

12 hours ago, aotta said:

Well, the difference is that original carts always tie pin 12 and gnd linked, while RTO drive the line to GND only when needed.

You could try a lower resistance to R6 (100 ohm or less), or even a direct link (a wire or a zero ohm resistor) only to check if in that case the RTO starts. 

[added]

you could also try to change the delay time at line 710 and 713 of "ino" code: i made a lot of tests and the value of 6 and 2 milliseconds for the on/off seemed the best for me, but probably different values would work better in your case.

Now, I've also tested with 100ohm and with a direct wire on R6 - it didn't make any difference. I still must push reset for the RTO to start.

ADDED:

I also tried some more extreme delay values - 30 and 3, as 5-11 had in his code. Didn't help, but the cart booted when I pressed reset. That makes me think that the reason I couldn't get it to boot at all with values like 8 and 4 wasn't because of the delay-values, but probably that I didn't get it straight into my connector at that time.

But still - changing the delay values doesn't seem to have any effect for me 😞

 

So I guess my only option left is to test 5-11 unders solution, if I want the RTO to start automatically on my unit.

Edited by Tissemon
Link to comment
Share on other sites

I think the hw changes by +5-11under make no difference, to reset the line must go low (gnd) until MSync. No difference for 3v3 or impedance, since the pullup resistor keep the 5v on the intellivision if circuit isn't grounded.

But, his reset routine has different logic and timing, and he tested it with intellivision II (I'll probably get one only next month), so it may works better than mine.

You could easily replace original resetCart() function with +5-11under's one, and give a try!

Link to comment
Share on other sites

8 hours ago, 5-11under said:

 

 
The following lines are also in the code, at the appropriate locations:
 
#define RST_PIN   7 //GPIO2_17
pinMode(RST_PIN,OUTPUT);
digitalWriteFast(RST_PIN,HIGH);

 

Thanks! I just tried with your updated Reset-function (but no hardware-changes) The cart still works, but still no automatic reset.

But maybe I didn't do it 100% correct - I didn't understand what you meant by adding these three lines at their appoporiate locations.

#define RST_PIN   7 //GPIO2_17 was already present at line 109 of Aottas code.

And pinMode(RST_PIN,OUTPUT); was present at line 615

 

But digitalWriteFast(RST_PIN,LOW);   //???????????

is on line 618 - should I change this initiation value to digitalWriteFast(RST_PIN,HIGH); ?

 

Link to comment
Share on other sites

Tissemon...

 

If you go with my changes, you'll need to adjust both the hardware and the software.

Those three lines of code that I show separately... those are at different points in the program... I'm showing them because some are different, and would need to be changed. Find them, and adjust them (after changing the hardware).

 

Edit:

But digitalWriteFast(RST_PIN,LOW);   //???????????

is on line 618 - should I change this initiation value to digitalWriteFast(RST_PIN,HIGH); ?

YES, but you need to change the hardware if you do this

/Edit

 

By the way, in the comments I refer to Model II and "both"... "both" means Model I and Model II in this case.

 

The problem I had, and the problem I think you're having, is that the original circuit is trying to drive the reset line to 3V3 as "high", rather than 5V, after grounding the reset. I tried manually setting my console to 3V3 after grounding for a period of time, and it didn't come out of the reset loop.

 

By changing this so that the Teensy drives the OEbar line of U5, the output is controlled to be either driving to GND (if OE is active) or high impedance (if OE is not active). Setting to ground for sufficient time will reset the console, and when in high impedance, the console takes over in the ramp from ground to high.

 

Basically, the code is now 1) make sure RESET is high impedance for a period of time, 2) set RESET low for a bit, then wait for MSYNC, then 3) put reset back to high impedance.

Link to comment
Share on other sites

2 hours ago, 5-11under said:

If you go with my changes, you'll need to adjust both the hardware and the software.

Those three lines of code that I show separately... those are at different points in the program... I'm showing them because some are different, and would need to be changed. Find them, and adjust them (after changing the hardware).

 

Edit:

But digitalWriteFast(RST_PIN,LOW);   //???????????

is on line 618 - should I change this initiation value to digitalWriteFast(RST_PIN,HIGH); ?

YES, but you need to change the hardware if you do this

/Edit

I'm sorry, but I still don't quite understand what to do with the code after I change the lines on the RTO-PCB.

#define RST_PIN   7 //GPIO2_17 was already present at line 109 of Aottas code. - Should this be changed to #define RST_PIN   19 ?
pinMode(RST_PIN,OUTPUT); was present at line 615 - Should I really change this at all?
digitalWriteFast(RST_PIN,LOW); - this one should be changed to digitalWriteFast(RST_PIN,HIGH) on line 618, right?

Link to comment
Share on other sites

11 minutes ago, Tissemon said:

I'm sorry, but I still don't quite understand what to do with the code after I change the lines on the RTO-PCB.

#define RST_PIN   7 //GPIO2_17 was already present at line 109 of Aottas code. - Should this be changed to #define RST_PIN   19 ?
pinMode(RST_PIN,OUTPUT); was present at line 615 - Should I really change this at all?
digitalWriteFast(RST_PIN,LOW); - this one should be changed to digitalWriteFast(RST_PIN,HIGH) on line 618, right?

Sorry, I don't have the schematics or full code in front of me, but what I've written is what's in my code. I searched for "RST", and these are the lines that showed up:

  #define RST_PIN   7 //GPIO2_17   //  this is where I've got the connection from the Teensy to pin 19 of U5. This was not explicitly mentioned in my hardware changes above, but could be deduced.
  pinMode(RST_PIN,OUTPUT);  // still an output (same)
  digitalWriteFast(RST_PIN,HIGH);  // for the changed hardware, high results in high impedance on output pin of U5. During reset, I momentarily change this to low, resulting in the reset pin of the cartridge port grounded (=reset). Edit: this is the initial state, line 618 I guess (prior to reset code).

 

Link to comment
Share on other sites

On 8/24/2023 at 9:06 AM, aotta said:

I think the hw changes by +5-11under make no difference, to reset the line must go low (gnd) until MSync. No difference for 3v3 or impedance, since the pullup resistor keep the 5v on the intellivision if circuit isn't grounded.

But, his reset routine has different logic and timing, and he tested it with intellivision II (I'll probably get one only next month), so it may works better than mine.

You could easily replace original resetCart() function with +5-11under's one, and give a try!

I have now tested with 5-11under's Reset-routine, both with digitalWriteFast(RST_PIN,HIGH); and digitalWriteFast(RST_PIN,LOW); as initial value.

The cart still works with both settings, but no automatic reset.

The next thing to try would probably be to make the hardware-changes that 5-11 suggested, but I'm not too keen on cutting traces on the cart just yet... So if you've got any other ideas I could try, I'm all ears! 🙂

Link to comment
Share on other sites

1 hour ago, Tissemon said:

I have now tested with 5-11under's Reset-routine, both with digitalWriteFast(RST_PIN,HIGH); and digitalWriteFast(RST_PIN,LOW); as initial value.

The cart still works with both settings, but no automatic reset.

The next thing to try would probably be to make the hardware-changes that 5-11 suggested, but I'm not too keen on cutting traces on the cart just yet... So if you've got any other ideas I could try, I'm all ears! 🙂

The software changes are useless without the hardware changes. you'll either need to stick to neither, or both.

  • Haha 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...
×
×
  • Create New...