BrilliantCom EduBank Packs 1 and 2

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
BrilliantCom EduBank Packs 1 and 2
by on (#207337)
Here's an odd one. This board type is used on the two Korean cartridges specified in the thread subject, each containing a handful of "educational" minigames. It consists of an AX5202P MMC3 clone, a 74LS174, and a Programmable Logic Array (PAL) chip. I don't know for sure how this board works internally, only what the Kazzo dumping script must look like to get a usable ROM image, and how to emulate it to make it work.

Apart from the usual MMC3 registers, there is an Outer Bank register at $8010-$801F which seems to latch the four lowest address bits. The outer bank register does not simply add additional bits to the MMC3 bank registers, but instead adds a start address that is not a power of two to whatever the MMC3 is addressing. The values written to the outer bank register are only #$00, #$05, #$0A, or #$0F.

In the CPU address space, the outer bank register simply functions as an additional 16K bank number, so a value of #$05 adds a start address of 0x14000. Of course, the MMC3 bank registers 6 and 7 can be set to access an inner bank address of 0x14000+ as well with values #$0A to #$0F. These values have a special meaning: they are hard-wired to access the last outer bank, regardless of the outer bank register, so an MMC3 bank register value of #0x0A will select a bank starting at 0x3C000 (the start address of outer bank #0x0F) plus 0x14000 (the inner bank start address) = 0x50000. This means in practice that outer banks #$00, #$05, #$0A are 80K in size (because the last 48K are taken from outer bank #$0F), while outer bank #$0F is 128 KiB in size, yielding a total PRG-ROM size of 368 KiB. This is the case for both cartridges.

PPU space mapping is different. The same outer bank register also selects an outer CHR-ROM bank, but its size (for the outer bank register's step size of 5) differs between the two cartridges. In the first pack, the outer CHR bank is 96 KiB (MMC3 bank register values #$00-#$5F are valid) yielding a total CHR-ROM size of 384 KiB, while in the second pack, the outer CHR bank size is 120 KiB (MMC3 bank register values #$00-#$77 are valid) yielding a total CHR-ROM size of 480 KiB. If an MMC3 CHR bank register contains a value higher than #$5F/#$77, then the beginning of the last hard-wired outer PRG-ROM bank is mapped into PPU space! The games do not seem to rely on that feature, but it allows me to determine what the outer CHR bank size actually is. Assuming a fixed number of four outer CHR banks, the outer CHR bank size can then be detected by an emulator by simply looking at the number of 8 KiB CHR-ROM banks in the NES header. I don't know how the board actually manages to derive values of #$60 or #$78 from an outer bank register value of #$05, though.


Attached find PCB images, a Nintendulator mapper source file, and Kazzo dumping scripts for the two cartridges. I do not know the Kazzo language enough to automatically determine the outer CHR bank size by looking for the PRG-ROM data appearing in PPU address space, so each pack has its own dumping script. Compiled mapper DLL here. I have tentatively assigned mapper number 516 for this board, as it is an Asia-only release. PCB images and cartridge dumping by MLX, whose prerogative it is to release the ROM images at an appropriate place. The previous ROM images that are floating around the internet disregarded the outer bank register and are thus incomplete.

Edit: See below.
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207361)
NewRisingSun wrote:
cartridge dumping by MLX
Would MLX be willing to measure what the pins of the PAL are connected to?
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207370)
NewRisingSun wrote:
then the beginning of the last hard-wired outer PRG-ROM bank is mapped into PPU space!
There is literally no physical way that can possibly be true. The Kazzo (for pin count reasons) connects both the cart CPU and PPU address and data buses together, so you're necessarily seeing an artifact of that.
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207371)
Why and how would setting an MMC3 bank number higher than the board hardware expects suddenly expose a Kazzo artifact?
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207374)
There is no physical connection on the cart itself between the CPU's data bus and the PPU's data bus; not via the PAL, not via the MMC3 clone, not via the latch. There is absolutely no possible way, in any way shape or form, for data to get from one ROM to the other's bus.

In order to explain how it could possibly cause an artifact from the Kazzo, I'd need to know how the PAL is connected.

Another simpler possibility is that for some inscrutable reason, the CHR ROM literally contains a copy of some of the data from the PRG ROM.
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207376)
I'll try to see how it's wired. Give me some time.
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207401)
thank you!!! wait rom..for test
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207428)
Most pins seems to be left unconnected.

I guess it's not very useful on how it is (since you'd need to know what pin 18 is doing with the rest of the '174…) but it's a start…
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207430)
1 - M2? should also be on cart connector
2 - /ROMSEL in
3 - R/W
4 - A4
18 - 174 "latch the contents of the address bus".
19 - /ROMSEL to MMC3

So ... it looks like the mask for this outer bank register is actually $801F, not $E01F or anything else finer. And it also very likely changes the mask for the underlying MMC3 registers to $E011.

If the PAL and latch outputs don't get between the AX5202P and the address pins of the ROMs... that basically means there's no way for the purported not-power-of-2 offset.

Between MLX's connectivity, and tracing what else I can from the photos of the PCB, I can say for certain is that the latched copy of A0 (74'174 pin 2) goes to PRG ROM A17 (pin 30).

latched copy of A1 (pin 5) probably goes to PRG ROM A18; latched copy of A3 (pin 10) probably goes to CHR ROM A18.


MLX, would you be willing to see what pins 2, 5, 7, and 10 of the 74'174 connect to?
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207435)
If I drop the whole "hard-wired" outer bank theory in favor of the last 48K of each 128K PRG ROM portion just having being copied into each bank during assembly of the ROM images for production, then the whole thing becomes much simpler.
Code:
8010+x  bits
00      0000
05      0101
0A      1010
0F      1111
        ||||
        |||+-------- PRG A17
        ||+--------- PRG A18
        |+---------- CHR A17
        +----------- CHR A18
       
       
        A00..A14        CPU     (0000-7FFF)
        A13..A16        MMC3    (8K 00-0F, A17/A18 unconnected?)
        A17..A18        latch   (128K 00-03)
       
        A00..A12        PPU     (0000-1FFF)
        A10..A16        MMC3    (1K 00-7F, A17 unconnected?)
        A17..A18        latch   (128K 00-03)
Which would simply give 512 KiB PRG and CHR ROM. I'm probably getting a few details wrong, but you get the idea.

lidnariq wrote:
Another simpler possibility is that for some inscrutable reason, the CHR ROM literally contains a copy of some of the data from the PRG ROM.
The PRG data at the end each 128K CHR ROM bank might be due to a buffer used by some ROM preparation program that, for each 128 KiB bank, was filled with user data. The same buffer may have been used for preparing CHR ROM bank data after it had been used for preparing PRG ROM bank data, and since the CHR ROM bank data did not fully fill up the buffer, whatever was left in the buffer from previous banks just got burnt into the ROM? Kind of like MS-DOS directory data ended up in the Beauty and the Beast NES ROM image.
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207436)
I agree with everything you just said.
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207487)
I have rewritten the Kazzo dumping script according to the simplified mapper description, and unsurprisingly, the redumped pack 1 ran flawlessly using a mapper source reflecting that simplified mapper. I have also verified again that the last 48 KiB are indeed identical between the four 128 KiB PRG banks. I have attached the updated Kazzo dumping script and Nintendulator mapper source file. Compiled mapper DLL here.

One question remains: while I can understand the need for an outer CHR-ROM bank given that the MMC3 can only address 256 KiB of CHR-ROM, why have an outer bank like this for 512 KiB PRG-ROM, which the MMC3 supports natively? I could understand it if one wanted to switch the otherwise fixed bank at E000, but that's the part that is identical between all banks' data.
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207488)
I have no good guesses; my only thought is that maybe they designed the hardware before software development knew they'd want the same fixed bank thereafter.
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207494)
dumped ok?
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207521)
Can you release KS-7030 please? :beer:
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207523)
if dump ok, I use code to update my own emulator
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207541)
zxbdragon wrote:
if dump ok, I use code to update my own emulator


working nestopia plus?
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207557)
lidnariq wrote:
1 - M2? ----- Yes
[…]
latched copy of A0 (74'174 pin 2) goes to PRG ROM A17 (pin 30). ----- Correct
latched copy of A1 (pin 5) probably goes to PRG ROM A18 ----- Correct (pin 31)
latched copy of A3 (pin 10) probably goes to CHR ROM A18. ----- Correct (pin 31)


pin 7 of the latch to pin 30 of CHR ROM.
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207559)
I saw a trace going to CHR ROM pin 1, but couldn't figure out where it was going to. Would you be willing to see if it (or PRG ROM pin 1, for that matter) is going anywhere more complex than ground or +5V?
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207560)
Seems to be an isolated line going to PRG ROM pin 1 and nothing else.
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207561)
That's so weird.

Thanks!
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207562)
*Spitfire_NES* wrote:
zxbdragon wrote:
if dump ok, I use code to update my own emulator


working nestopia plus?


you can update Nestopia UE!Don't get entangled in Nestopia Plus!
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207564)
zxbdragon wrote:
*Spitfire_NES* wrote:
zxbdragon wrote:
if dump ok, I use code to update my own emulator


working nestopia plus?


you can update Nestopia UE!Don't get entangled in Nestopia Plus!


Im asking you what emulator you update zxbdragon.

To stay on topic. Thanks for sharing this with the community NewRisingSun. :beer:
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207575)
*Spitfire_NES* wrote:
zxbdragon wrote:
*Spitfire_NES* wrote:

you can update Nestopia UE!Don't get entangled in Nestopia Plus!


Im asking you what emulator you update zxbdragon.

To stay on topic. Thanks for sharing this with the community. :beer:


I can update any emunlator,but not update UE!
Want to fight? Come with me!
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207576)
WTF are you talking about Dragon? I think you misunderstood what i asked. I'm done derailing this thread, apologies to NewRisingSun and anyone else.

I only asked you because i'd like to see it in action and thought you might have a new emulator.
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207580)
I think it's because of the language barrier, that zxbdragon often misinterpreted other's messages, and sometimes his posts weren't really easy to comprehend either.

@zxbdragon:
Maybe you can write in both Chinese and English in your future posts (I think you already did that in some of your previous messages), so that in case of disputes caused by misunderstanding I may help a bit.
你日後在貼文時,可考慮同時寫中文及英文版 (我想你在以前也曾這樣做),如因會而出現爭拗時,我可能幫得上忙的。
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207585)
Gilbert wrote:
I think it's because of the language barrier, that zxbdragon often misinterpreted other's messages, and sometimes his posts weren't really easy to comprehend either.

@zxbdragon:
Maybe you can write in both Chinese and English in your future posts (I think you already did that in some of your previous messages), so that in case of disputes caused by misunderstanding I may help a bit.
你日後在貼文時,可考慮同時寫中文及英文版 (我想你在以前也曾這樣做),如因會而出現爭拗時,我可能幫得上忙的。


好的,其实我感觉很怪,他们自己可以很好的更新Nestopia UE,但是非要我自己用的Plus代码。其实他就是拿到Plus代码,也没有用,因为Plus的代码不能使用在UE框架中。
抛开GPL先不说,就说,要求我贡献GPL,这些要求我的人对GPL作了什么?我只看到一只要向别人要现成的东西。如果一味索取都算是GPL的拥护者,那我就还是作我的GPL亵渎者。这就是现在心情,也就是PLUS暂时不开源,自己用的原因。

Plus的状态虽然不好,但是在一些游戏的执行,我敢说,完全精确到与实体机一样。
不想多说了,经济、家庭、病痛我现在的状态。
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207607)
没有人要求您的代码Zxbdragon或帮助更新UE。没有人对GPL做过任何说明。我想你可能会认为,当有人要求你的帮助时,你把它误认为是攻击。

我问你关于这个游戏的唯一原因是因为我很好奇,如果你已经开始自己的模拟器,并希望看到游戏的行动。我以为你可能已经开始了自己的模拟器。

就这样。如果你回头看我说的话,我只是问你有没有工作。你为什么觉得奇怪,认为我们在问你关于UE和GPL。在过去,唯一的原因是我曾经要求你的帮助,因为你是一个熟练的,知识渊博的编码员,我尊重你的工作。

祝你有美好的一天,记住,我们都在这里。

Hopefully, this will clear things up.
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207630)
*Spitfire_NES* wrote:
没有人要求您的代码Zxbdragon或帮助更新UE。没有人对GPL做过任何说明。我想你可能会认为,当有人要求你的帮助时,你把它误认为是攻击。

我问你关于这个游戏的唯一原因是因为我很好奇,如果你已经开始自己的模拟器,并希望看到游戏的行动。我以为你可能已经开始了自己的模拟器。

就这样。如果你回头看我说的话,我只是问你有没有工作。你为什么觉得奇怪,认为我们在问你关于UE和GPL。在过去,唯一的原因是我曾经要求你的帮助,因为你是一个熟练的,知识渊博的编码员,我尊重你的工作。

祝你有美好的一天,记住,我们都在这里。

Hopefully, this will clear things up.


你确定没有?你自己在github上要求多少次?不是我认为有人要求我帮助就是攻击我,这里有些人我是帮助过的我为什么不去说他们?你在UE的GITHUB上不断提我的名字,让我更新UE,这不是攻击,是求助?你更新你的XBOX版的NESTOPIA,我也没有看到有人说你是GPL 亵渎者。
1.我不是熟练的编码员,你并不尊重我的工作,编码员,在中国是最低级的工作者,他们连自己的思想都没有。这叫编码员,我下下下级的工作类别
2.编码员其实并不能更新模拟器,编码员并不会有编程思想,只会按程序员指定的设计去编辑,而程序员是按中级程序员去。。。。等等
你那不是曾经要求,而是一种公开的胁迫,同时在google现在还能找到GPL dragon2snow的相关亵渎者信息。
我奉献过UE的完善,你自己很明白,但UE的作者和我不是同一路人,就像MAME和HAZE的关系一样。

我建立www.nesbbs.com,我是FC/NES 超级FANS,在DUMP ROM、完善模拟器、包括购入卡带,我付出不是你这类只要代码就可以明白的。
中国虽然盗版不光彩,但中国FC盗版产生的这些卡带,是你们这些没有玩这的人不会明白的,那是80后回忆。

我的时间并不长了,我在想的是为80后能作点什么,你们想的是如何让自己的模拟器兼容性更强,让别人认可。我的更新Nestopia Plus就作了两件事:
1.对goodnes,nongoodnes等合集作了一次全面的测试,你作了吗?
2.REDUMP了 GOODNES中所有的卡带,并确定是不是GOODDUMP,你作了吗?
我更新的Nestopia Plus,本身就是我自己用的模拟器,只是自己用,但我的网站会发布新的ROM,我必须让我的会员知道,这些ROM,是OK的。

不想与你在别人的帖子中讨论这个事,我可不需要这个韩国游戏,但有人提供了MAPPER代码,我就要尝试添加,我的会员希望自己网站的东西可以,我相信。
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207631)
是的,我敢肯定。我在这里有我自己修改的UE分叉。 https://github.com/joepogo/Nestopia2我在这里做我的提交和Xbox版本是UE版本。

我认为在过去的朋友中,你误解了开玩笑和质疑攻击你。沟通显然存在障碍,容易产生误解。再一次,为什么我要求你的帮助的唯一原因是因为我认为你是熟练的编码和知道代码库。

过去我们共享了代码,我感谢你。我现在没有问题与你分享代码。我将很快为塞尔达外星,德古拉二世和魔法小子咕咕提交我的叉子。希望我能弄清楚FDS irq,如果你知道我能做什么,这将会有很大的帮助。如果没有,那也没关系。

将来我会记得确保我的意见或问题是尊重的。我想在这种情况下,这只是一个简单的误解。在这种情况下,我只想知道游戏将运行在哪个模拟器上。在编码方面,我仍然在学习,并不知道很多。我只是一个初学者。
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207632)
Can someone offer subtitles?
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207633)
*Spitfire_NES* wrote:
是的,我敢肯定。我在这里有我自己修改的UE分叉。 https://github.com/joepogo/Nestopia2我在这里做我的提交和Xbox版本是UE版本。
我认为在过去的朋友中,你误解了开玩笑和质疑攻击你。沟通显然存在障碍,容易产生误解。再一次,为什么我要求你的帮助的唯一原因是因为我认为你是熟练的编码和知道代码库。

过去我们共享了代码,我感谢你。我现在没有问题与你分享代码。我将很快为塞尔达外星,德古拉二世和魔法小子咕咕提交我的叉子。希望我能弄清楚FDS irq,如果你知道我能做什么,这将会有很大的帮助。如果没有,那也没关系。

将来我会记得确保我的意见或问题是尊重的。我想在这种情况下,这只是一个简单的误解。在这种情况下,我只想知道游戏将运行在哪个模拟器上。在编码方面,我仍然在学习,并不知道很多。我只是一个初学者。

好吧,看到你的源代码,我在想,我试过你的XBOX版,有很多的新增加的滤镜,代码呢?多说无意义。各玩各的。

不是误会,我的团队一直在注意你的语气.我英语是不好,但我与其它人沟通没有问题,为什么只有你有问题?你自己想想吧!
你搞定模拟是你的事,我更新什么模拟器是我的事。我不想在这里讨论这个问题。
我只要关心这个是否DUMP OK,因为如果卡在我手里,10分钟左右 这个ROM,应该可以搞定DUMP。
我当年四处请教别人,所有人都不帮助,但我也没有公开地方叫着别人的ID说话。
这话题到这里为止,你自己已有更新UE的能力,就不要再以熟练来逃避,就G2的IRQ的模拟,我自己研究了15天,看到共享的FCEUX代码,我也研究了近小一周,才搞定。我问过,Nestopia中怎么实现呢,可惜几天没有回复,我也没有见你说,我也试一下搞吧。。。。


不想多说了,我和你,UE之间的事,就是个死结,我从不去招惹你们,你们也别招惹我。

对不起,管理员,不用开了,这事在我这里算过了。开玩笑要看情况的,在两个敌对状态的项目中开玩笑,你认为是玩笑,还是公开挑衅或胁迫。
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207635)
tepples wrote:
Can someone offer subtitles?

Sorry!Admin.This topic stops here.
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207637)
Yea, sorry to all, we took this topic WAY off topic due to a misunderstanding. I suggested in this response below that we pm each other if more correspondence is needed. :D AT least we were able to iron out the issue in civil manner.

是的,xbox过滤器代码是即时添加到UE存储库中的特定于xbox的代码。这些筛选器是相对于Xbox。当我们说话时,我正在进行犯罪。

任何想使用它的人都可以看看代码。再次,我想在互联网上,很难说什么是一个笑话,什么不是。我们不必再进一步讨论。我认为,现在我们都已经了解到沟通更容易了。

我想你是在谈论你在github上打开的fds irq吧?我正在看它,但不知道如何编辑Nstfds.cpp文件,因为我不完全理解它。有时需要Rdanbrook一段时间才能回复跟踪器上的问题。

当我说你攻击我的时候,没有任何挑衅,我只是在开玩笑,因为我问了很多关于让游戏在模拟器上工作的问题,我觉得它让你发疯。再次,我没有与你分享代码的问题,也许在将来我们可以进一步讨论这个问题。

如果您想进一步讨论或合作,您可以随时在此通知我。祝你晚安,祝你的项目好运。
Re: BrilliantCom EduBank Packs 1 and 2
by on (#207642)
*Spitfire_NES* wrote:
Yea, sorry to all, we took this topic WAY off topic due to a misunderstanding. I suggested in this response below that we pm each other if more correspondence is needed. :D AT least we were able to iron out the issue in civil manner.

是的,xbox过滤器代码是即时添加到UE存储库中的特定于xbox的代码。这些筛选器是相对于Xbox。当我们说话时,我正在进行犯罪。

任何想使用它的人都可以看看代码。再次,我想在互联网上,很难说什么是一个笑话,什么不是。我们不必再进一步讨论。我认为,现在我们都已经了解到沟通更容易了。

我想你是在谈论你在github上打开的fds irq吧?我正在看它,但不知道如何编辑Nstfds.cpp文件,因为我不完全理解它。有时需要Rdanbrook一段时间才能回复跟踪器上的问题。

当我说你攻击我的时候,没有任何挑衅,我只是在开玩笑,因为我问了很多关于让游戏在模拟器上工作的问题,我觉得它让你发疯。再次,我没有与你分享代码的问题,也许在将来我们可以进一步讨论这个问题。

如果您想进一步讨论或合作,您可以随时在此通知我。祝你晚安,祝你的项目好运。

这一段的话意思就是让我分享我修改的FDS文件的意思,还说没有,如果没有想让我分享的意思,就不要提,你们怎么搞是你们的事,我提交了BUG,没有人回应是没有回应的事,现在我关了BUG,也不想再给你们提BUG.
总之,我和你没有什么可以说的,你并没有分享XBOX的相关部分,这一点与GPL亵渎者没有区别!但我作为大家眼中的GPL亵渎者的唯一区别是,我自己修改代码,而你是向别人索取后改进你的XBOX的代码中。我也不公开发布Plus,理论上你得到的Plus都是泄漏的低级版本。
我不是硬件大师,我只是小角色,用我自己行动去完善自己用的东西。我第一个添加到这个模拟器的游戏,我用了近6年时间,自己研究,自己读别人代码,当时我同时读取vnes,fceu,nestopia,nester的代码,同时自己开发DUMP硬件,并和同好一起搞。我再傻一段话是不是向你要什么了,我还是能分得出来的。
对不起,我在上班,我也不想和你讨论什么?对于一个对自己作的行为都能否认的人,我没有什么可以说的。

Attachment:
20171109131539.png
20171109131539.png [ 18.38 KiB | Viewed 1933 times ]


类似这样,帮助,你明知我不会帮UE,却一直在要求,我没有什么想到的代码,Plus支持的代码,很多其它模拟器也没有代码,这些都是我自己玩出来的,同时一个不被模拟的ROM,除(MMC5 Clone)我没有搞定,正在搞之外,其它的我可以自己玩,所以不想在和你N大的帖子中讨论这个事,你玩你的,我玩我的。

我开始上 下午班了,你睡你的。