Jump to content
IGNORED

PICO9918 - a TMS9918A drop-in replacement powered by a Pi Pico (RP2040)


Recommended Posts

Soon. I've hand-assembled a few v0.4 boards.  That's very time consuming though. 1-2 hours each at this point.

 

I'm in the process of sorting out some pre-assembled units. Waiting on one of the ICs to come in at the PCB manufacturer. I expect I'll have these in a couple of weeks. I'll work something out with @arcadeshopper to make it easier for those in the US. There will be other options too.

  • Like 4
  • Thanks 2
Link to comment
Share on other sites

I, for one, am quite excited.  Thank you!

 

Attached is my latest GPU code I've been working on.  There's 1 bugfix, symbol VREGS @>6000 vs >6020 were both needed, and is fixed now.  I've got the '99 PC register in Pico R3 on a permanent basis now.  The workspace pointer (Pico R11) is now set up as an absolute pointer rather than being bounded...  This means you can set the WP to >FFFE and have 15 registers (+1) slightly out of the 64KB memory map (only R0 remains in the address space, right at the end of '99 memory).  There was quite a lot of overhead wrapping around the WP back to >0000 with strange values no-one ever uses, and it's not something any F18A code would have issues with in any case.

 

Over 4.5MIPS now.  Actually, it's pretty close to 4.6MIPS.  It's been fun too, but there's not much more in it, I'm afraid, unless we overclock more.

TMS9900A.zip

  • Like 4
  • Thanks 2
Link to comment
Share on other sites

Posted (edited)
18 hours ago, jltursan said:

Well, the Pico can be safely overclocked until 270Mhz; so...😉

That's right. The PICO9918 is currently running it at (a leisurely) 252MHz since that's close (enough) to being a multiple of the 640x480@60Hz pixel clock of 25.175Mhz. In testing, I've gone as high as 350MHz, but you do need to begin increasing the core voltage above around 270MHz.

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

Quick update: I've just ordered 50x mostly assembled PICO9918 v1.0 boards. These are pretty much the same as the v0.4 boards, but with a few very minor mostly cosmetic tweaks.

 

Since testing the v0.4 boards, I'm confident enough to upgrade them from v0.x to v1.x 🙃.

 

I've only ordered the bottom side to be assembled as the top only has a few components I'm happy to throw on manually.

 

I've never ordered assembled boards before, so fingers crossed for a good outcome. 😟

  • Like 7
  • Thanks 1
Link to comment
Share on other sites

28 minutes ago, visrealm said:

Quick update: I've just ordered 50x mostly assembled PICO9918 v1.0 boards. These are pretty much the same as the v0.4 boards, but with a few very minor mostly cosmetic tweaks.

 

Since testing the v0.4 boards, I'm confident enough to upgrade them from v0.x to v1.x 🙃.

 

I've only ordered the bottom side to be assembled as the top only has a few components I'm happy to throw on manually.

 

I've never ordered assembled boards before, so fingers crossed for a good outcome. 😟

I've actually had good experiences with them assembling my boards. I had them do the same with your v0.3 board, just the surface mount, I'll do the rest type thing.

  • Like 3
Link to comment
Share on other sites

On 7/31/2024 at 10:26 PM, visrealm said:

50x mostly assembled PICO9918 v1.0 boards.

I am glad our hobby community is getting experience with having boards assembled by companies that do that thing.

   New TI hardware is already constrained, this should help, a lot!

  • Like 3
Link to comment
Share on other sites

@dhe absolutely!

 

These v0.4 (and v1.0) boards are very taxing to build with the small leadless packages and 0402 components. So far, I've managed to hand-build five. One of those seems quite dead (won't talk to PC at all :(). The other four are working great, but also took some time to sort out the various hot plate reflow issues, test, diagnose, rinse and repeat. There's no way hand-building these in bulk would be viable.

 

Of course, a lot of these issues are probably due to my relatively amateurish SMD soldering skills, but still... I'm hoping the PCBA shop can rid me of 90% of these problems.

 

Here's a pic of the whole fleet so far :D

 

image.thumb.png.362eadf0e6720dfeaf0e94dc034cb4a2.png

 

And a closeup of the painful side:

 

image.thumb.png.fd98590edd5ca84ca7b3afd36f321b52.png

 

 

  • Like 10
Link to comment
Share on other sites

Absolute Ledg Mate!! I would never contemplate soldering these mini babies, this is why I love through hole, some SOP are doable by old guys like me. JLPCB also have a service that solder all these bits for you as well, it looks like the days of making your own boards from a laser printer, heating Iron and dipping into solution are gone (thank goodness, what a mess it was). Your project has completed a cycle of events, when no more TMS graphic chips are available we are forced to make our own! I am guessing the next level seismic event would be the TMS9900 and it younger brother TMS99000 (105,110). 

 

To give you guys a heads up, Ken Shirriff who opens up the CPU and reverse engineers it on video fame, said to me he will like to do the same for the TMS9900. Looking forward to this event, when he finds time, I will keep everyone posted. Regards Arto.  

  • Like 4
  • Thanks 1
Link to comment
Share on other sites

On 7/30/2024 at 9:12 PM, JasonACT said:

Actually, it's pretty close to 4.6MIPS.

4.66MIPS average with the debug output disabled.  A conditional "jump to self" runs at well over 8.5MIPS, so I'm calling it good enough, and will refrain from any more spam.  Well, at least until this project has 64 VDP registers in a 64KB RAM block at >6000, when I can complete the required "stop logic" and remove the MIPS counter/debug stuff.  (For anyone comparing the Thumb assembler, there were small gains in aligning start instructions on word boundaries, which is why this version has everything moved around.)

TMS9900A.zip

  • Like 3
  • Thanks 1
Link to comment
Share on other sites

5 hours ago, Archimedes5000 said:

Can software be run directly on the chip? It doesn't have to be a TMS9900, it just has to interact with the host (TI99) somehow. Sorry, that might be a bit naive, but this chip has the power for it.

Greetings Axel

There's no practical way for the TMS9918A socket to interact with the host other than when the host requests it. Software could directly run on it, but it would be limited in scope to VRAM read/write only.

Link to comment
Share on other sites

Posted (edited)
On 8/3/2024 at 6:18 PM, JasonACT said:

4.66MIPS average with the debug output disabled.

TMS9900A.zip 14.26 kB · 3 downloads

Very impressive. I'll set up a GitHub repository for this soon and add it as a git submodule to the PICO9918 repo.

 

Edit: I have now set up a repository for your thumb9900 code, @JasonACT. I've also included your entire commit history. See https://github.com/visrealm/thumb9900

I will eventually set it up with CMake and integrate it.

 

Edited by visrealm
  • Like 4
Link to comment
Share on other sites

I assume this doesn't give off any heat or much at all so the original heat sink that might be stuck up in the case can probably go away right?

As soon as my soldering  iron hit that board, It would be poof in a heartbeat.... Better you than me. If it was through hole and resistors the size of my pinky yeah I'm good

  • Haha 1
Link to comment
Share on other sites

12 minutes ago, GDMike said:

I assume this doesn't give off any heat or much at all so the original heat sink that might be stuck up in the case can probably go away right?

Yeah, the RP2040 runs very cool. Even overclocked. The original heatsink can go away.

Link to comment
Share on other sites

@visrealm Pic 1 is a close up of the working pico9918 that I received, and pic 2 is of the "dead one". Those shipped fast, I was impressed.

now if you look at pictures close you will see that pic 1 in the upper left top of the cpu has two pins tied with solder. pic 2 "the dead one" does not. Just throwing this out, does this matter? Could this be a cause for the dead one to be dead, maybe it's necessary for these to be shorted together? Or should I be unshorting the working one, just in case? Just asking before I delve to deep. I haven't tested neither yet, will not get a good chance for a couple of days due to other things going on.

PICA0000.jpg

PICA0001.jpg

Link to comment
Share on other sites

Posted (edited)

Geez that top one looks awful close up. No, they shouldn't be tied. Those two pins are least significant bits of blue on the VGA output. The output appeared fine on the working one, so I'm a little surprised that's the working one.

Edited by visrealm
Link to comment
Share on other sites

4 minutes ago, visrealm said:

Geez that top one looks awful close up. No, they shouldn't be tied. Those two pins are least significant bits of blue on the VGA output. The output appeared fine on the working one, so I'm a little surprised that's the working one.

I understand, I'll be sure to use some solder wick and remove that short then. Thanks

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...