Kazzo USB rom dumper / dev cart programmer

Discuss hardware-related topics, such as development cartridges, CopyNES, PowerPak, EPROMs, or whatever.

Moderator: Moderators

NYMike
Posts: 120
Joined: Wed Jul 01, 2015 3:21 pm

Re: Kazzo USB rom dumper / dev cart programmer

Post by NYMike »

Blake5100 wrote:Can anyone confirm if the Super Mario World hack called "Brutal Mario" works with the inl snes boards? I see people selling reproductions of it so I assume it runs on real hardware, but when I flashed the game and tried it out the snes played the coin sound effect and black screened upon booting up the game. If someone could test out the hack and see if it works, I'd greatly appreciate it!
Yes I have burned both the Japanese and English rom hack of Brutal Mario
viewtopic.php?f=28&t=12963&start=15
gaminginabox
Posts: 8
Joined: Sat Nov 12, 2016 10:10 am

Re: Kazzo USB rom dumper / dev cart programmer

Post by gaminginabox »

Not giving up on dumping PowerJoy via Kazzo.

I've split PRG and CHR of existing PowerJoy ROM and got this as a note:
Program repetition: 1 time(s)
Character repetition: 1 time(s)
Program RAM size: 0KB
iNES format: 1.0
System: NES
Program Banks: 128 (16KB Each)
Character Banks: 128 (8KB Each)
Mapper: 126
Mirroring: Vertical
Trainer: No

Trying to dump PowerJoy with MMC3 script yields SOMETHING - garbled screen but still can scroll up and down the list and switch "pages". Other scripts also yielded something, but MMC3 seems to be the closest. So maybe I'll focus on tweaking the MMC3 script.

I've looked at the script writing tutorial at ungai site (via Google Translate) but there is no mapper 126 in VirtuaNES source so I can't follow along with the script writing tutorial.
gaminginabox
Posts: 8
Joined: Sat Nov 12, 2016 10:10 am

Re: Kazzo USB rom dumper / dev cart programmer

Post by gaminginabox »

Found source code to PowerJoy board in Nestopia source code. Going to see if I can use this.

Code: Select all

////////////////////////////////////////////////////////////////////////////////////////
//
// Nestopia - NES/Famicom emulator written in C++
//
// Copyright (C) 2003-2008 Martin Freij
//
// This file is part of Nestopia.
//
// Nestopia is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// Nestopia is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Nestopia; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
//
////////////////////////////////////////////////////////////////////////////////////////

#include "NstBoard.hpp"
#include "NstBoardMmc3.hpp"
#include "NstBoardBmcPowerjoy84in1.hpp"

namespace Nes
{
	namespace Core
	{
		namespace Boards
		{
			namespace Bmc
			{
				#ifdef NST_MSVC_OPTIMIZE
				#pragma optimize("s", on)
				#endif

				void Powerjoy84in1::SubReset(const bool hard)
				{
					if (hard)
					{
						for (uint i=0; i < 4; ++i)
							exRegs[i] = 0;
					}

					Mmc3::SubReset( hard );

					for (uint i=0x6000; i < 0x8000; i += 0x4)
					{
						Map( i + 0x0, &Powerjoy84in1::Poke_6000 );
						Map( i + 0x1, &Powerjoy84in1::Poke_6001 );
						Map( i + 0x2, &Powerjoy84in1::Poke_6001 );
						Map( i + 0x3, &Powerjoy84in1::Poke_6000 );
					}
				}

				void Powerjoy84in1::SubLoad(State::Loader& state,const dword baseChunk)
				{
					if (baseChunk == AsciiId<'B','P','J'>::V)
					{
						while (const dword chunk = state.Begin())
						{
							if (chunk == AsciiId<'R','E','G'>::V)
								state.Read( exRegs );

							state.End();
						}
					}
					else
					{
						Mmc3::SubLoad( state, baseChunk );
					}
				}

				void Powerjoy84in1::SubSave(State::Saver& state) const
				{
					Mmc3::SubSave( state );
					state.Begin( AsciiId<'B','P','J'>::V ).Begin( AsciiId<'R','E','G'>::V ).Write( exRegs ).End().End();
				}

				#ifdef NST_MSVC_OPTIMIZE
				#pragma optimize("", on)
				#endif

				uint Powerjoy84in1::GetExChrExBank() const
				{
					return
					(
						(~uint(exRegs[0]) << 0 & 0x080 & uint(exRegs[2])) |
						( uint(exRegs[0]) << 4 & 0x080 & uint(exRegs[0])) |
						( uint(exRegs[0]) << 3 & 0x100) |
						( uint(exRegs[0]) << 5 & 0x200)
					);
				}

				void NST_FASTCALL Powerjoy84in1::UpdatePrg(uint address,uint bank)
				{
					bank &= ~uint(exRegs[0]) >> 2 & 0x10 | 0x0F;
					bank |= (exRegs[0] & (0x6U | (exRegs[0] & 0x40U) >> 6)) << 4 | (exRegs[0] & 0x10U) << 3;

					if (!(exRegs[3] & 0x3U))
					{
						prg.SwapBank<SIZE_8K>( address, bank );
					}
					else if (address == (regs.ctrl0 << 8 & 0x4000))
					{
						if ((exRegs[3] & 0x3U) == 0x3)
							prg.SwapBank<SIZE_32K,0x0000>( bank >> 2 );
						else
							prg.SwapBanks<SIZE_16K,0x0000>( bank >> 1, bank >> 1 );
					}
				}

				void NST_FASTCALL Powerjoy84in1::UpdateChr(uint address,uint bank) const
				{
					if (!(exRegs[3] & 0x10U))
						chr.SwapBank<SIZE_1K>( address, GetExChrExBank() | (bank & ((exRegs[0] & 0x80U) - 1)) );
				}

				NES_POKE_AD(Powerjoy84in1,6000)
				{
					if (!(exRegs[3] & 0x80U))
						NES_DO_POKE(6001,address,data);
				}

				NES_POKE_AD(Powerjoy84in1,6001)
				{
					address &= 0x3;

					if (exRegs[address] != data)
					{
						exRegs[address] = data;

						if (exRegs[3] & 0x10U)
							chr.SwapBank<SIZE_8K,0x0000>( GetExChrExBank() >> 3 | (exRegs[2] & 0xFU) );
						else
							Mmc3::UpdateChr();

						Mmc3::UpdatePrg();
					}
				}
			}
		}
	}
}
sdm
Posts: 410
Joined: Tue Apr 11, 2006 4:08 am
Location: Poland

Re: Kazzo USB rom dumper / dev cart programmer

Post by sdm »

I have done two dev-cards, which are adapted to Kazzo (original anago) - SUROM and SNROM. SUROM programmed easily, but there is a problem with SNROM (there are problems with the CHR-FLASH). The status bar CHR hangs on "ERASING".

I suspect that the problem is the lack of profile SNROM. I have the opportunity to choose only mmc1_SKROM.ag and mmc1_SUROM.a in KazzoGUI. My guess is that CHR SNROM is not compatible with CHR SKROM? Can anyone send me the file / profile (*.ag) to SNROM?

I did also UNROM according to the description of this page:
https://osdn.net/projects/unagi/wiki/flash_74161_en
Checked everything thoroughly, I do not know why you do not want to work. PCB has a DIP32 socket - if the memory is programmed external programmer it all works ok, but do not want to run the Kazzo programmer (I used the original game PCB - exactly HCV-UNROM-03, two types of flash memory have been tested - SST39SF020 and W49F002)
Attachments
kazzo_unrom128_2.JPG
kazzo_unrom128_1.JPG
darthvedder
Posts: 10
Joined: Sat Feb 20, 2016 7:41 pm

Re: Kazzo USB rom dumper / dev cart programmer

Post by darthvedder »

I've been trying to dump Super C with the kazzo, but only the CHR will dump properly. It appears that I have the "KONAMI-TLROM" version, according to bootgod's database. I'm assuming the pins are different from NES-TLROM and this is why I can't get it to dump properly. Of course, the pins still might be dirty and we all know what happens when we assume. Any ideas? Thanks.
NYMike
Posts: 120
Joined: Wed Jul 01, 2015 3:21 pm

Re: Kazzo USB rom dumper / dev cart programmer

Post by NYMike »

Kind of curious if anyone else has had this issue with the Kazzo programmer. I went to burn Super Mario The Lost Adventure 3 yesterday and for the life of me could not get it to save. I swapped out a battery and still nothing. I burned the rom again and still nothing. I assumed that there was some how an issue with the rom itself and almost gave up. Today for whatever reason I tried a third battery and voila! It saved properly.

So with that in mind, how long does your guys kazzo carts batteries last? I bought my boards a year ago to two years max. My Aunt brought up some NES and SNES games for me on Thanksgiving that I played as a kid seriously 20-25 years ago and the saves are still good.

Please don't think I am complaining, more of curious if I am doing something wrong that could possibly be killing the batteries or if its possible I just got a bad batch of batteries from China ect.
darthvedder
Posts: 10
Joined: Sat Feb 20, 2016 7:41 pm

Re: Kazzo USB rom dumper / dev cart programmer

Post by darthvedder »

This is a new one. I bought a copy of RoboCop and tried to dump it with the kazzo. After dumping the PRG, it would stop and generate an error:

libusb0-dll:err [control_msg] sending control message failed, win error: A device attached to the system is not functioning.

I thought my kazzo had stopped functioning, as I hadn't used it in awhile. So, I tried reinstalling the driver. Everything seemed fine. I tried other games, and it attempted to dump them properly.

I decided to open RoboCop up to clean it in case that was the problem. However, I discovered that the board inside is NES-TLBROM-01. I do not see this board in bootgod's database. I do not see this board anywhere. I see TBROM, but not TLBROM. What the hell is this? Does anyone have any idea?

The board has a PRG chip, a CHR chip, the lockout chip, the MMC3A chip, another chip up top, and what appears to be a resistor near the CHR chip.

Here's a pic of the board (sorry about the quality, my dumbphone's camera is not the greatest)
NES-TLBROM-01
NES-TLBROM-01
Last edited by darthvedder on Sat Mar 18, 2017 6:28 pm, edited 1 time in total.
lidnariq
Posts: 11429
Joined: Sun Apr 13, 2008 11:12 am

Re: Kazzo USB rom dumper / dev cart programmer

Post by lidnariq »

Any chance you have a scanner? OR would be willing to spend more timing fighting with your camera to get a picture that's in focus? If so, a picture of the back also would be lovely.

Also, please attach images to the forum so that we're not dependent on third parties not losing data.

From what I can see, it looks similar to NES-TL1ROM (but different; e.g. the CIC has moved, there's this bizarre extra SN74LS541N on the board)

The labels on your PCB's mask ROMs:
NES-CP-0 PRG
5M58-12-12-D253
894C5A1 JAPAN

NES-CP-0 CHR
5M58-12-D256
8940EAI JAPAN

seem to be a month earlier than the previous one in NEScartDB.

My hunch is that the 74'541 is getting in a fight with the Kazzo, drawing too much power, causing the device to fall off the USB. On the bright side, there's no reason to think this dump is different from any other copy of US Robo Cop 1.
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Kazzo USB rom dumper / dev cart programmer

Post by tepples »

The big list of 7400 series ICs on Wikipedia lists 74541 as a "non-inverting octal buffer, three-state outputs". It may be acting as an output enable mechanism to allow use of marginally slow CHR ROM, analogously to the 74HC245 ("octal bus transceiver, non-inverting three-state outputs") in Holy Diver.
darthvedder
Posts: 10
Joined: Sat Feb 20, 2016 7:41 pm

Re: Kazzo USB rom dumper / dev cart programmer

Post by darthvedder »

Thanks for the info, guys. Good stuff. I'll work on getting better images of it for you.
kazblox
Posts: 35
Joined: Thu Feb 23, 2017 2:27 pm

Re: Kazzo USB rom dumper / dev cart programmer

Post by kazblox »

[Post had a bunch of incorrect assumptions and errors, purging...]
Last edited by kazblox on Tue Jun 06, 2017 12:36 pm, edited 2 times in total.
lidnariq
Posts: 11429
Joined: Sun Apr 13, 2008 11:12 am

Re: Kazzo USB rom dumper / dev cart programmer

Post by lidnariq »

Pictures of novel PCBs are always appreciated, regardless of whether they're helpful!

I tentatively think your script matches the FCEUmm source code.
kazblox
Posts: 35
Joined: Thu Feb 23, 2017 2:27 pm

Re: Kazzo USB rom dumper / dev cart programmer

Post by kazblox »

Here you go! The "KS127" chip appears to be the PRG chip.
Attachments
kaiser2_cropped.jpg
kaiser1_cropped.jpg
lidnariq
Posts: 11429
Joined: Sun Apr 13, 2008 11:12 am

Re: Kazzo USB rom dumper / dev cart programmer

Post by lidnariq »

Can't trace all of the board, but the big thing I see relative to the implementation in FCEUmm is that the latches latch the address bus, not the data bus.

If that's not enough, I think I'd need a connection list for the pins on the 74'157s, 74'161s, and PAL to be able to get any further.
kazblox
Posts: 35
Joined: Thu Feb 23, 2017 2:27 pm

Re: Kazzo USB rom dumper / dev cart programmer

Post by kazblox »

That would be a bit out of my scope sadly, since this is, I should clarify, someone else's board and that the mask ROM seems to be custom and I don't know if the pinout for the it would be the same as others. I could ask for the cart to be sent off to kevtris but he's kinda busy with everything so... eh...

I do have a NROM readout of the cart if it would mean anything useful. For anyone who wants to take a shot, PM me.
Post Reply