NINA-03 to NINA-06 conversion for Robert Byrne's Pool Challenge

A place that you can discuss reproduction of classic titles or "licensed-for-reproduction" homebrew for personal use.

Moderator: B00daW

Forum rules
1. NO BLATANT PIRACY. This includes reproducing homebrew less than 10 years old, with the exception of free software.
2. No advertising your reproductions, with the exception of free software.
3. Be nice. See RFC 1855 if you aren't sure what this means.
the_wizard_666
Posts: 81
Joined: Thu Feb 25, 2021 6:52 am

NINA-03 to NINA-06 conversion for Robert Byrne's Pool Challenge

Post by the_wizard_666 »

First off, there's a small issue with the database - it says the NINA-03 and NINA-06 boards are identical except for the lockout mechanism, but that's not entirely true. There are solder pads for 64KB chips on the NINA-06 boards that are not on the NINA-03, which means the NINA caps out with 32KB chips. This ordinarily wouldn't matter too much, except that the PRG on Robert Byrne's Pool Challenge is 64K and the only donor I have available has a NINA-03 board. This was noticed when comparing images of the proto (on a NINA-06) to the board. Tracing the PRG-512 solder pad, I determined that I should solder pin 1 of the PRG to pin 10 of the 74*174, which got the game to boot, but there appears to be other issues with the display. The thing is, I don't have a NINA-06 available to test for continuity between pins (there's a couple extra pins connected on the 06 board that are not connected on the 03 board), and I'm having trouble tracing without removing the chips. I also noticed that the 03 uses a 74*175 in place of the 74*174. I'm not sure if this matters, but I do have the correct chip available to swap if that could be the cause of the issues (they seem to be mostly compatible, but there may be differences I don't know about). Since info on these boards is pretty damn scarce, and the cost of a new donor would be higher than I want to spend on a pool game, I thought I'd tap the knowledge base to see what should be connected, so I can work out what needs to be connected. Thanks in advance for the help!
lidnariq
Site Admin
Posts: 11803
Joined: Sun Apr 13, 2008 11:12 am

Re: NINA-03 to NINA-06 conversion for Robert Byrne's Pool Challenge

Post by lidnariq »

There's also a 2 / 5 solder jumper in the middle of NINA-06; without any other evidence beyond a few random PCB photos I'd assume that's for choosing the size of CHR (256 kibit vs 512 kibit).

The mapper itself is very simple; it's just "decode the memory region with the 74'138, and take one of the /Yn outputs and connect it to the clock input of the latch".

The two latches only differ in that the 74'174 has six bits of latches, and the 74'175 has four bits of latches but the latched outputs are available both in their normal and inverted sense (latch 0, get 0 and 1; latch 1, get 1 and 0). That shouldn't be relevant.
the_wizard_666
Posts: 81
Joined: Thu Feb 25, 2021 6:52 am

Re: NINA-03 to NINA-06 conversion for Robert Byrne's Pool Challenge

Post by the_wizard_666 »

So basically, it should work as-is...lovely...

I did notice the 512/256 pads for the CHR, but felt they would likely be irrelevant to the issue because the chip is the correct size for the board.

Looking with fresh eyes, and it would appear that the PRG is working perfectly. Testing out the ROM shows that the game is running correctly, it's just not correctly displaying. On the AVE loading screen, the AVE logo doesn't appear on the cartridge as it should. The title screen is missing the title graphic, though the balls are moving around as normal. On the menu selections, none of the words appear, however the selection icons are there, and they can be navigated. This suggests to me that the issue is with some of the data on the CHR not being accessed correctly. Everything seems to connect the way it should when tested for continuity, so I'm not sure where to go with it.

I think I'm going to investigate the way the 74*175 is connected and make sure it matches the 74*174 on the proto board. I looked up the pinout for the 175 and it appears to have a few slight differences (pin 10 is still Q3, which is probably why that trace works as expected). Notably, on the 175, pin 2 is Q1, whereas it's Q0 on the 174. This is likely due to how the bank switching happens, but given the configuration (the D and Q values don't all match up), it might matter more than initially thought...sadly, I don't have a NINA-06 to check things out on, but I think this may be more relevant than initially assumed.
the_wizard_666
Posts: 81
Joined: Thu Feb 25, 2021 6:52 am

Re: NINA-03 to NINA-06 conversion for Robert Byrne's Pool Challenge

Post by the_wizard_666 »

So looking around on the NES Cart DB, I found that Pyramid used a NINA-03 but no logic chips, allowing me to see fully which pins of the 74*175 are used, and using the pinout I found online, I charted out the 12 pins that are non-standard:

Pin 2 - Q1 - CHR Pin 26
Pin 3 - Q1_ - NC
Pin 4 - D1 - PRG Pin 13
Pin 5 - D2 - PRG Pin 14
Pin 6 - Q2_ - NC
Pin 7 - Q2 - CHR Pin 27
Pin 10 - Q3 - NC
Pin 11 - Q3_ - NC
Pin 12 - D3 - PRG Pin 13
Pin 13 - D4 - PRG Pin 17
Pin 14 - Q4_ - NC
Pin 15 - Q4 - NC

Pins 4, 7, 10, and 13 are identical between the 74*174 and 74*175, however there are a few variances. Notably, there are only 4 Q values instead of 6. My feeling is that these likely don't matter as much, as long as the lines are going to and from the right places. I would need a NINA-06 board to compare it to, of course, but I probably don't need to change the chip, just the way the chip is wired in. I only have to switch the logic chip if the NINA-06 uses more than 4 Q/D pairings, otherwise I should be able to make do with it. I just need to figure out where the data SHOULD be going, and match it up with where it actually IS going, which sadly will require me to find a NINA-06 board.

Regardless, maybe it should be noted in the database that a NINA-03 game will work normally on a NINA-06, but not the other way around, due to this issue. I'll continue to work on solving the NINA-03 to NINA-06 conversion issue for the one other person in the world that may one day run into it :P
lidnariq
Site Admin
Posts: 11803
Joined: Sun Apr 13, 2008 11:12 am

Re: NINA-03 to NINA-06 conversion for Robert Byrne's Pool Challenge

Post by lidnariq »

It is remotely possible that the order of CHR ROM pins to data line is not the same order on both boards, nor the naive assumption of D0,D1,D2 -> A13,A14,A15.
the_wizard_666
Posts: 81
Joined: Thu Feb 25, 2021 6:52 am

Re: NINA-03 to NINA-06 conversion for Robert Byrne's Pool Challenge

Post by the_wizard_666 »

Yeah, that's what I'm thinking. The data is there, but is going to the wrong places. I'll just have to find a NINA-06 board so I can trace the pins with a multimeter, as many of the destinations aren't clear from photos, and I can't find such documentation anywhere to just compare notes. At least it's a solvable issue, it's just going to have to sit in my "project" pile for a bit.
lidnariq
Site Admin
Posts: 11803
Joined: Sun Apr 13, 2008 11:12 am

Re: NINA-03 to NINA-06 conversion for Robert Byrne's Pool Challenge

Post by lidnariq »

the_wizard_666 wrote: Wed Jun 26, 2024 12:42 pm I found that Pyramid used a NINA-03 but no logic chips, allowing me to see fully which pins of the 74*175 are used, and using the pinout I found online, I charted out the 12 pins that are non-standard:

Pin 2 - Q1 - CHR Pin 26
Pin 3 - Q1_ - NC
Pin 4 - D1 - PRG Pin 13
Pin 5 - D2 - PRG Pin 14
Pin 6 - Q2_ - NC
Pin 7 - Q2 - CHR Pin 27
Pin 10 - Q3 - NC
Pin 11 - Q3_ - NC
Pin 12 - D3 - PRG Pin 13
Pin 13 - D4 - PRG Pin 17
Pin 14 - Q4_ - NC
Pin 15 - Q4 - NC
I think you're off somewhere here - you've described two connections to PRG pin 13, and a connection to PRG pin 14 (which is ground on these 14-pin ROMs)

There should be connections to CPU D0-D3 (PRG pins 11, 12, 13, 15); those should connect to PRG pin 1 and CHR pins 26, 27, and 1 in some order.
the_wizard_666
Posts: 81
Joined: Thu Feb 25, 2021 6:52 am

Re: NINA-03 to NINA-06 conversion for Robert Byrne's Pool Challenge

Post by the_wizard_666 »

The two PRG 13 connections are a typo...but I did mess up by counting like a 32 pin EPROM rather than a 28 pin one, so I've fixed my notes accordingly. But the logic chips, they're 16 pins, not 14. I just omitted pins 1, 8, 9, and 16 due to them being redundant for this puzzle.

Right now, the board is configured with the following:

CHR Pin 26 - Q1 - D1 - PRG Pin 11
CHR Pin 27 - Q2 - D2 - PRG Pin 12
D3 - PRG Pin 13
D4 - PRG Pin 15

By connecting PRG1 onto pin 10 of the 74*175, it's signal is going to PRG 13. CHR 1 should stay where it is due to being a 256k EPROM (it would only connect to the PRG with the 512 solder pad, so it'd be irrelevant here).

I'm guessing that since both boards are used by multiple games and are compatible all around, that the gates are connected right by default, so it's just a matter of not overthinking the problem. I've connected PRG 1 to PRG 13 through the logic chip, and it mostly works but not fully. The logical next step would be to move it from Q3 to Q4 and try connecting it to PRG 15 instead. That would also solve whether or not PRG 13 or PRG 15 should get the signal from CHR 1 for a larger EPROM in that socket. I'll report back once my soldering iron warms up and I test this out...

EDIT: Nope, same issue. Balls.

EDIT 2: As a last ditch attempt, I pulled up CHR pin 1 and connected it to Q4, and it's still exactly the same. Game boots up and runs properly, but it's missing some of the visual elements. I guess the last thing to test is whether the paths all correctly link up on the NINA 06 in the same way as the NINA 03 is set up.
lidnariq
Site Admin
Posts: 11803
Joined: Sun Apr 13, 2008 11:12 am

Re: NINA-03 to NINA-06 conversion for Robert Byrne's Pool Challenge

Post by lidnariq »

I brainoed "14" instead of "28" pin ROM.

According to the mapper documentation, it should be PRG 15=CPU D3 → PRG 1(A15) and PRG 13=CPU D2 → CHR 1(A15). But the latch is connected in-order.

Sometimes we can figure out what's going on with photos of what incorrect thing you see. Would you share a photo of when it's using the wrong CHR bank?
the_wizard_666
Posts: 81
Joined: Thu Feb 25, 2021 6:52 am

Re: NINA-03 to NINA-06 conversion for Robert Byrne's Pool Challenge

Post by the_wizard_666 »

That's the thing, it's not that it is loading the wrong banks...what loads is right. It just doesn't load everything. For example, the "American Video Presents" intro when you power up is a solid yellow screen, it fails to load the AVE logo. On the title screen, the title logo fails to load, but all the balls are present and animated on a green screen. After hitting start, the main menu pops up, but the table is missing, as is the text. The options are still there, but all you see is a box for the selections. Again, everything works fine, just missing graphics. When starting the game, the table doesn't load, but the game still plays, but it's just balls on a black screen. The holes still function but there's no way to see them, and all the text is missing as well. It's like the graphic data is just not getting through somehow. I can grab a few pics in the morning if it's still needed, but I'm currently lying in bed and don't want to get up to do it at the moment.
lidnariq
Site Admin
Posts: 11803
Joined: Sun Apr 13, 2008 11:12 am

Re: NINA-03 to NINA-06 conversion for Robert Byrne's Pool Challenge

Post by lidnariq »

To be sure I'm on the same page: all the sprites work, and none of the backgrounds do??
the_wizard_666
Posts: 81
Joined: Thu Feb 25, 2021 6:52 am

Re: NINA-03 to NINA-06 conversion for Robert Byrne's Pool Challenge

Post by the_wizard_666 »

No, the sprites are all there, it's the backgrounds that are missing. So you can see the balls and the cue stick, but not the text or background images. When booting up, the AVE Presents logo is not there, nor is the title graphic on the title screen. On the menu screens, nothing is visible outside of a selection box...no text or imagery.

Using the PPU viewer in Mesen, the Sprite Viewer tool gives the best view of what the screens look like. So it loads all the sprites properly, but none of the background images.

Edit: just noticed I misread your post. We're absolutely on the same page 😆 Apologies for the long winded and unnecessary explanation 😆
lidnariq
Site Admin
Posts: 11803
Joined: Sun Apr 13, 2008 11:12 am

Re: NINA-03 to NINA-06 conversion for Robert Byrne's Pool Challenge

Post by lidnariq »

These PCBs change the bank used for both sprites and backgrounds at the same time. So whatever's going on, it's not your transplant.

In fact, this is sufficiently weird as symptoms go that I have to start contemplating weird things:

* The data that you put into PRG is somehow broken (and the writes that would enable backgrounds aren't)
* The CHR ROM that you're using is somehow broken (and everywhere that PPU A12 is asking for background data, it's instead driving the data bus to all 0s)
... Maybe there's a solder blob from CHR A15 to CHR A12, and it just-so-happens to be right for sprites, and wrong for backgrounds, and switches to an all-0s bank? Or maybe this ROM uses pin 1 as a CE of some sort?
the_wizard_666
Posts: 81
Joined: Thu Feb 25, 2021 6:52 am

Re: NINA-03 to NINA-06 conversion for Robert Byrne's Pool Challenge

Post by the_wizard_666 »

I can guarantee it's not a solder blob. I just finished checking the entire board over multiple times...everything connects where it should, and does not connect anywhere it shouldn't. This includes A15 and A12 of both chips.

Looking at the PPU viewer again, it appears that all the sprites are found on the first page of the CHR, and the rest of the graphics (the ones not showing up) are spread from CHR $1000 - $7FFF. So it seems whatever code tells it which CHR bank to use is simply not working. I don't know the code side of things well enough to know where that switch should be occurring, but essentially whatever command tells it to load a different page of graphics is not working. It would certainly help pinpoint where things should be heading. Short of a new donor board, I don't know what to do here.
lidnariq
Site Admin
Posts: 11803
Joined: Sun Apr 13, 2008 11:12 am

Re: NINA-03 to NINA-06 conversion for Robert Byrne's Pool Challenge

Post by lidnariq »

The problem is that this board can only bank sprites and backgrounds as a pair; there's no way that "just" losing banking would cause the backgrounds to entirely disappear.

The pool ball graphics are present twice: yes, once in bank 0 at $0000-$01FF but also in bank 3 at $7000-$71FF. The title screen (where it should display POOL Robert Byrne's CHALLENGE THE MOST REALISTIC 8-BIT POOL SIMULATION EVER) uses the latter. So that already implies it's not simply the banking - if it was stuck on page 0 the title screen pool balls would be a bunch of squares, and if it was stuck on page 3 the gameplay pool balls would be a bunch of squares.