KRIKzz released his mmc5 source code to the N8 Everdrive, due to my request of wanting support for larger mmc5 roms. A friend of mine is going to perform the hardware modifications, by replacing the 512kb prg/chr srams, with 1024kb chips. The firmware aspect is out of my league. The Everdrive uses an fpga chip, and the mmc5 source code I was told is far from perfect.
Is there anyone that would be willing to look at the mmc5 source code, to see what needs to be added or enhanced? This could open the door for full mmc5 capability on a flashcart, and stop the excessive destruction of rare mmc5 games, to get mmc5 creations (such as my own) to work on real hardware. I'll paste the link to the development section to obtain the source. Thanks for reading!
http://krikzz.com/pub/support/everdrive-n8/development/KRIKzz mentioned what I believe is the program used to work with the files.
"Project files for Quartus II v13"
Good idea, Maybe can replace to IS61WV10248BLL.
I also want to support more PRG.
He's contemplating a revision with either 4 or 8mb chips. But for now he's laid out for me a "do-it-yourself" schematic for what needs to be done to the motherboard. So within a couple weeks my friend should have the hardware modifications done, and then we can test my mmc5 2mb roms, to see what mmc5 functions are present, and lacking.
Which is why I'm hoping before the cartridge is complete, if anyone with language skills would be willing to examine the existing mmc5 source code, and would modify/edit/expand/etc the code, so that the emulation of the mmc5 mapper would be on par with emulation you get from FCEUX, Nestopia, Nintendulator.
infidelity wrote:
if anyone with language skills would be willing to examine the existing mmc5 source code, and would modify/edit/expand/etc the code, so that the emulation of the mmc5 mapper would be on par with emulation you get from FCEUX, Nestopia, Nintendulator.
I've been following this thread:
http://forums.nesdev.com/viewtopic.php?f=2&t=15931I'm not volunteering anyone, but there are two users in that thread that are figuring out Koei Bytecode intricacies. Unless I miss my guess, they appear to have a deep understanding of the MMC5.
I would LOVE to be able to play the Legend of Link on original hardware without ruining a rare MMC5 cart. Developments like this thread and the one linked above will eventually lead to custom mappers and possibly even MMC5 repro boards that would make cartridge cannibalism a thing of the past. That's an exciting prospect.
It is very exciting indeed. We are on the verge of having full mmc5 capability on a flashcart. The only missing piece now, is someone with fpga chip experience, that would examine KRIKzz source, and add on to the mmc5 source. That's all that's missing, and I hope this reaches out to someone with that experience, and the want, to see the mmc5 thrive on the N8 Everdrive, and spare the mmc5 cartridges in the world.
My recollection is that both the PowerPak and N8 use up all the available I/O on their corresponding FPGAs.
The PowerPak doesn't really have any spare pins, because it could support the MMC5's "SL" mode. The N8, OTOH, adds the possibility of banking PRG in 1KiB chunks but couldn't support "SL" mode.
For the N8, one of those pins (PRG A12, A11, A10, called "prg_map" in the source there) has to be stolen and repurposed as PRG A19 ... and then again for CHR A19 ... to get 1 MiB support. (The specifics of the "do-it-yourself" schematic matter)
The MMC5 core itself already has reserved space for the full 1MiB supported by the MMC5 ("chr_addr[19:0]") even though the most significant bit isn't always connected ( assign chr_addr[18:10] = sprite_mode ? (sprt_fetch ? chr_ax[8:0] : chr_bx[8:0]) : last_set ? chr_bx[8:0] : chr_ax[8:0];)
Here is the convo on the schematic.
http://krikzz.com/forum/index.php?topic=6645.15It's pretty much pg2 & 3 that do the most describing. Everything in that thread according to KRIKzz (on the hardware level) is there to accomplish getting 2mb roms to load.
The only thing left, is for someone to analyze the fpga mmc5 source code, and see what additions need to be made.
He said the code is "far from perfect" so idk if the vertical split screen address is missing, if $5130 is not implemented which allows you to load huge amounts of chr within a 1024kb chip, whether certain ExRAM functions are there or not there, etc. I'm no good in this department. So that's why I'm trying to spread the word on this, to see if anyone is willing to take this to the next level (via firmware) because Ben Boldt is able to perform the hardware modifications needed to make the N8 Everdrive load larger roms.
Forgive me if this has already been discussed once or twice (or a hundred times), but would it be less work to write it from the ground up than to do maybe-impossible fpga modifications? As a hack, it surely has inefficiencies a ground-up design would not have.
Honestly, the verilog is almost all the way there already.
It just needs
* two lines in the QSF file to map whatever physical pins to prg_map[9] and chr_map[9]
* adjustments in main.v to widen prg_map and chr_map from 9 bits wide to 10 bits wide
* adjustments in map_255.v (the loader?) and map_5.v to
** connect prg_addr[19] and chr_addr[19] along with the rest of the bus
** extend prg_size and chr_size to 6 and 7 bits respectively to correctly handle less-than-full-size images
And that's basically it.
calima wrote:
As a hack, it surely has inefficiencies a ground-up design would not have.
Why are you assuming it's a hack?
Because it's on romhacking.net, listed as a hack?
... You're complaining about Infidelity releasing romhacks that target 1 MiB MMC5 in a thread about specifically modifying an everdrive N8 to support the same 1 MiB that the hardware MMC5 does?
Thank you lidnariq for all that information!
lidnariq wrote:
... You're complaining about Infidelity releasing romhacks that target 1 MiB MMC5 in a thread about specifically modifying an everdrive N8 to support the same 1 MiB that the hardware MMC5 does?
Yes. It's a clear decision that makes it unavailable on all current flashcarts, unless this modification succeeds, making it obviously relevant.
edit: And even if the mod succeeds, it's not something most users will be able to do.
Well, I'm now at a roadblock with no timeframe to when I can go further. lidnariq revealed that the OS needs to be adjusted. I asked KRIKzz if he would be willing to share the source, and he refused (which I respect and understand). So I asked if he would make the change himself for me in the OS. I'm assuming he looked through it, stated it is too much work for 1 custom cart. It is very unfortunate, and I would've never purchased the cart knowing this OS issue at the time. So, Ben Boldt is still going to perform the hardware mod on the everdrive, then I need to find someone with FPGA experience, that will adjust the mmc5 source files for me, so that my cartridge can at least be at that state. I didn't want to keep pressing him on the subject, but I feel this isn't just for 1 custom cart. The blueprints have been laid out for anyone, on how to do this mod. It's unfortunate that he went this far with giving the mmc5 source, figuring the hardware schematic, only to be stopped by his undesired feelings on adjusting the OS. So that's where the project stands now.
To be fair to Krikzz, sharing mapper code is one thing, but the core of his system is another. Given that he makes his living selling EverDrives, he does not want to make life any easier for the clone makers and potential competitors. Plus, if you change the OS, you make break stuff unintentionally, whereas if you change a mapper, you would only just break a subset of games.
Totally understand (as I've already stated) his refusal on releasing his OS, I figured I'd ask, and he had every right to say no, and I have zero issue with that. My only gripe, is that he was gracious and willing to draw up a schematic, and to release his mmc5 source, only for me to now be in limbo, because he realized the OS needs adjusting, and has no desire to do so.
And in regards to possible breakage you mention, there would be none, because it is specifically towards expanded mmc5 roms. On top of that, this isn't something off the bat he would've released universally, since I'm the only one with a modified everdrive cartridge.