Considering buying a kazzo and flashing my homebrew

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Considering buying a kazzo and flashing my homebrew
by on (#170812)
I posted this in another thread, but I got the advise to start a new thread, so here it is.

I'd like to run/test my homebrew on a real device. And I came across the infiniteneslives.com site.

As I understand it, it would suffice to buy the kazzo: http://www.infiniteneslives.com/kazzo.php ($20,-)
And an NROM flash board ($13). This board comes with a PRG and a CHR bank as I understand it.

Right?

And then hook up the kazzo, erase the CHR and PRG bank. Flash both and you can plug it in to your NES.
And if you want to flash another ROM you can.

Am I oversimplifying this, or is this really all it takes? Especially iteratively flashing the ROM on the cartridge sounds like a great feature.
Re: Considering buying a kazzo and flashing my homebrew
by on (#170813)
Yes, that's how it works.
Re: Considering buying a kazzo and flashing my homebrew
by on (#170816)
Yeah that's the general idea. If you want the cartridge plastics they're sold separately (above the NROM boards)

Don't hesitate to contact me via email or ticket on my support page if you have any questions/issues.
Re: Considering buying a kazzo and flashing my homebrew
by on (#170836)
Alright. There's just one thing left to do then: finish my homebrew. 8-)
Re: Considering buying a kazzo and flashing my homebrew
by on (#170861)
An alternative setup is to connect your NES to your PC with a USB adapter. With that you only need to cycle the power on the NES, then run a command on the PC to upload it to the flash. This can be convenient, if the NES and PC aren't too far.

This is how the Cheapocabra devkit works. Disclosure: I'm the designer/producer of it. It doesn't have a website currently, but despite that, it can be ordered from Solegoose Productions, or myself.
http://forums.nesdev.com/viewtopic.php?f=4&t=12716 Like $35 for the devkit, free if the board is used for a release.

The Everdrive cartridge also supports USB, it's not on the standard model though. I don't own one so I can't say how it works.
Re: Considering buying a kazzo and flashing my homebrew
by on (#170875)
Cool! thanks, I'll look into that.

Although I like the idea of flashing it and lending the cart out to a friend so she can try my game..

fritz
Re: Considering buying a kazzo and flashing my homebrew
by on (#170897)
The cart with the Cheapocabra devkit also does work as a normal cart when it's used alone with an NES, whatever was last programmed onto it will persist until it's erased again. I'll have to do a full write-up on it sometime, but to clarify, the devkit part is a modified Game Genie and a USB adapter that connects to the controller port. So the cart itself is relatively normal.
Re: Considering buying a kazzo and flashing my homebrew
by on (#172455)
So I've got my kazzo and my cartridge, installed all of the drivers.. Now what.

I have .nes rom, which obviously won't work. But I'm not quite sure how to compile only the .prg. The .chr is easier, I already have that seperately.

I'm using cc65 if that helps. But I'm not sure what to do. Do I only compile the code, and not the header.
Anyways, any kind of steering or help would be appreciated.
Re: Considering buying a kazzo and flashing my homebrew
by on (#172456)
You can specify a file attribute for the PRG/CHR memory block in your linker configuration file. You can paste your linker configuration here if you need help with that.
Re: Considering buying a kazzo and flashing my homebrew
by on (#172459)
Eh.. ok. I think you mean this cfg file right?
https://github.com/fritzvd/emesh/blob/m ... se/nes.cfg

(i haven't pushed changes in a while, but this should be unaltered..)
Re: Considering buying a kazzo and flashing my homebrew
by on (#172470)
It's a little inconvenient because you have separate PRG, DMC, and VECTORS memory areas in your linker, but even so you should just be able to relace the "%O" with "prg.bin" on all three lines to get something.
i.e.
Code:
    PRG: start = $8000, size = $3f00, file = "prg.bin" ,fill = yes, define = yes;
[...]
    DMC: start = $7f00, size = $fa, file = "prg.bin", fill = yes;
[...]
    VECTORS: start = $7ffa, size = $6, file = "prg.bin", fill = yes;


Alternatively, it looks like you're not using windows? You could also use dd to extract just the PRG, with something like dd bs=16 skip=1 count=1024 if=emesh.nes of=prg.bin
Re: Considering buying a kazzo and flashing my homebrew
by on (#172500)
lidnariq wrote:
It's a little inconvenient because you have separate PRG, DMC, and VECTORS memory areas in your linker, but even so you should just be able to relace the "%O" with "prg.bin" on all three lines to get something.

You can also replace with "%O.prg" and "%O.chr", where appropriate.

But note that it will no longer create a valid iNES ROM in this case. One way to handle that is to output "%O.hdr", "%O.prg", "%O.chr" separately, and then concatenate them after building (e.g. with cat on *nix, or copy on Windows.)

EDIT: Where did you get this configuration file? The start address for DMC/VECTORS doesn't make sense. (It might still work if you never access the address of the relevant segments.)
Re: Considering buying a kazzo and flashing my homebrew
by on (#172516)
Quote:
But note that it will no longer create a valid iNES ROM in this case. One way to handle that is to output "%O.hdr", "%O.prg", "%O.chr" separately, and then concatenate them after building (e.g. with cat on *nix, or copy on Windows.)


Thanks all for replying! That sounds like a very good idea actually. I was already looking up the other way around, just because I couldn't find it.

(ended up installing dosbox. Which feels super counter intuitive, installing DOS INSIDE LINUX)

Yes I'm not using windows.
Code:
dd
also sounds like a good idea.

Quote:
EDIT: Where did you get this configuration file? The start address for DMC/VECTORS doesn't make sense. (It might still work if you never access the address of the relevant segments.)

I've been doing the http://nesdoug.com tutorial as well as sifting through shiru's examples. So I can recall specifically. But either one of those I guess.
Would you be able to point me to a 'better' configuration file?

EDIT: YES! I replaced the entries in the cfg file and get 3 seperate files, that still work after a
Code:
cat main.hdr main.prg main.chr > main.nes
I'll try to get the seperate files on the flash cartridge with the kazzo later today!
Re: Considering buying a kazzo and flashing my homebrew
by on (#172518)
fritzvd wrote:
Quote:
EDIT: Where did you get this configuration file? The start address for DMC/VECTORS doesn't make sense. (It might still work if you never access the address of the relevant segments.)

I've been doing the http://nesdoug.com tutorial as well as sifting through shiru's examples. So I can recall specifically. But either one of those I guess.
Would you be able to point me to a 'better' configuration file?

You can set the DMC start address to $BF00, and the vector start address to $BFFA. Or DMC start address to $FF00 and vector start address to $FFFA. Both are valid options because of mirroring.

This won't make a difference unless you rely on the addresses from those memory blocks somewhere in your code, but it's good practice.
Re: Considering buying a kazzo and flashing my homebrew
by on (#172521)
Ah yes.

I actually have that in the nrom 256 setup:

Code:
    # NROM256
    DMC: start = $ff00, size = $fa, file = "main.prg", fill = yes;

    # Hardware Vectors at end of the ROM

    # VECTORS: start = $7ffa, size = $6, file = "main.prg", fill = yes;

    # NROM256
    VECTORS: start = $fffa, size = $6, file = "main.prg", fill = yes;


I forgot to switch to 2 banks in the bottom though. So first it wouldn't work. Works now!

Code:
    NES_PRG_BANKS :type weak, value = 2;          # number of 16K PRG banks, change to 2 for NROM256