Page 31 of 51

Re: Kazzo USB rom dumper / dev cart programmer

Posted: Mon Dec 05, 2016 7:09 pm
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

Re: Kazzo USB rom dumper / dev cart programmer

Posted: Tue Dec 06, 2016 1:53 pm
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.

Re: Kazzo USB rom dumper / dev cart programmer

Posted: Tue Dec 06, 2016 2:05 pm
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();
					}
				}
			}
		}
	}
}

Re: Kazzo USB rom dumper / dev cart programmer

Posted: Tue Dec 20, 2016 5:03 am
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)

Re: Kazzo USB rom dumper / dev cart programmer

Posted: Wed Dec 21, 2016 8:52 pm
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.

Re: Kazzo USB rom dumper / dev cart programmer

Posted: Fri Dec 30, 2016 8:25 pm
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.

Re: Kazzo USB rom dumper / dev cart programmer

Posted: Sat Mar 18, 2017 5:02 pm
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

Re: Kazzo USB rom dumper / dev cart programmer

Posted: Sat Mar 18, 2017 5:20 pm
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.

Re: Kazzo USB rom dumper / dev cart programmer

Posted: Sat Mar 18, 2017 5:39 pm
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.

Re: Kazzo USB rom dumper / dev cart programmer

Posted: Sat Mar 18, 2017 6:30 pm
by darthvedder
Thanks for the info, guys. Good stuff. I'll work on getting better images of it for you.

Re: Kazzo USB rom dumper / dev cart programmer

Posted: Sat Apr 22, 2017 4:56 pm
by kazblox
[Post had a bunch of incorrect assumptions and errors, purging...]

Re: Kazzo USB rom dumper / dev cart programmer

Posted: Sat Apr 22, 2017 5:14 pm
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.

Re: Kazzo USB rom dumper / dev cart programmer

Posted: Sat Apr 22, 2017 5:56 pm
by kazblox
Here you go! The "KS127" chip appears to be the PRG chip.

Re: Kazzo USB rom dumper / dev cart programmer

Posted: Sat Apr 22, 2017 6:37 pm
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.

Re: Kazzo USB rom dumper / dev cart programmer

Posted: Sat Apr 22, 2017 8:05 pm
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.