Questions about "320-336Mbit???" games and converting savetypes

Discussion in 'Nintendo Game Development' started by Cyber Akuma, Feb 10, 2018.

  1. Cyber Akuma

    Cyber Akuma Member

    Joined:
    Aug 10, 2017
    Messages:
    6
    Likes Received:
    1
    I looked up how to try to make your own N64 cartridge to to load homebrew or modded versions of games on real N64 hardware without having to use an everdrive, and I saw this:

    https://assemblergames.com/threads/custom-homebrew-n64-cartridges.66440/

    Basically, there apparently hasn't been much work on that, but they suggested that one way to do that is to repurpose a reproduction cartridge, and to use something like Sanni's cart reader to reflash it.

    I hope it's OK to start a new thread about this, since I figured since the last post in that one was August of 2017, it would be considered necroposting.

    And from what I have seen, most people tend to use either a Conker or Resident Evil 2 (mostly Conker) cart simply because they were 512Megabit carts, the largest produced for the N64, so there wouldn't be an issue of trying to flash something that would not fit. Thing is though, those games used 16Kbit EEPROM and 256Kbit SRAM respectively. For Conker, while EEPROM was the most common type of storage medium used for saving, this would mean that any game or app that needs more than 16Kbit would not have enough space to save, and for Resident Evil, this would mean anything that uses the 1Mbit Flash RAM type would not have enough space to save.

    I tried to look up what games were both 512Mbit and used 1Mbit Flash RAM for storage, and the list was pretty small, pretty much it was just Paper Mario (specifically only the Eurpoean version) and Pokemon Stadium 2.

    So I have a few questions about this:

    First of all.... I was confused why only the European version of Paper Mario was 512Mbit, could the extra languages (which from my understanding, were text-only )really take that much space? I actually dumped my Paper Mario US cartridge using Sanni's reader to check, and the resulting ROM was confusingly 40MB (41,943,040 bytes to be exact).... huh? That makes no sense, what is that, around 320 or 335 or so Megabits? I don't understand how that even works, since the next increment from 256Megabits would be 512Megabits. Did they use a 32MB and 8MB ROM? Wouldn't using two chips be more costly than a single larger chip since that would mean a different cart design? I would open up my cart to check.... but I would have no idea what I'm looking at :(

    Second, since N64 games had three types of on-cart save methods (EEPROM, SRAM, and Flash RAM), do you need to use a cart that has the same type of save method as the original modded game used (Not even sure what type of save system N64 homebrew would use)? Or can it somehow be converted to use a different save method? Would any type of homebrew game or modded game even mess with this setting? Come to think of it, would reproduction carts even be using the same save method? They certainly aren't using ROMs if they can be re-flashed, are they just simply using a large type of save and it's not an issue of trying to worry about the size of the save the game used? (Then again, I guess with a reproduction cart you can never tell what they did?). Basically, do I need to use a reproduction cart with EEPROM to run something expecting EEPROM to save to, a cart with SRAM that is expecting SRAM, etc etc? Or can I just get one that is using the 1Mbit Flash RAM and get it to work with anything by converting the save method or file somehow?

    And third, is there any way to know if any homebrew or mods will work on real hardware? From my understanding, Mario 64 Last Impact will (sadly) not run on real hardware. I hear this is common due to how much of a mess the whole N64 emulation scene is and how many of these mods are developed with an emulator in mind. I don't suppose there is a list anywhere? And would attempting to flash these mods to a cartridge instead of using something like an everdrive make them even less likely to work than if it was on an everdrive?
     
    Zant likes this.
  2. rso

    rso Not a member. You're imagining things.

    Joined:
    Mar 26, 2010
    Messages:
    2,160
    Likes Received:
    425
    320 sounds about right - that's what it's supposed to be, iirc. RAM/ROM IC sizes only come in powers of two, so once you cross a threshold (here: 256Mb) you have to use the next bigger one* (here: 512) and leave some space unused/wasted. Your dumper may either know about the supposed size of the game, or just detect the blocks of 0xff- or -0x00 padding at the end, and snip it off. If you used a "dumb" reader for dumping you would've gotten a 512Mb file, the full contents of the chip.

    * edit: or spread your data over multiple chips, but I haven't seen any 64 games do that

    As for running stuff on real hardware, it's mostly hit-and-miss. Mario hacks are like 99.9% miss because the tools everyone uses pretty much don't give a shit as long as it runs in whatever (flawed) emulator their author prefers; off the top of my head I can think of three other games that are supposed to work: golden eye x, wonder project j2 and sin & punishment. Homebrew? nothing worth looking at on the 64, imho. In any case, I'd get a flash cart and try each rom before I go through the trouble of making a physical cart out of it.
     
    Last edited: Feb 10, 2018
  3. TriMesh

    TriMesh Site Supporter 2013-2017

    Joined:
    Jul 3, 2008
    Messages:
    1,953
    Likes Received:
    473
    They exist. One example is the US version of Shadows of the Empire, which is 12MB/96Mb - if you open the cart up, there are 2 ROM chips in it, one MX23L6402-35 (64Mb) and one MX23L3202-35 (32Mb) - presumably that was cheaper than using a single 128Mb part.

    SoTE.jpg
     
    BLUamnEsiac and rso like this.
  4. Cyber Akuma

    Cyber Akuma Member

    Joined:
    Aug 10, 2017
    Messages:
    6
    Likes Received:
    1
    Right, that's what I would assume. And since the ROM is 40 megs, it can't be a 256Mbit rom, so I would assume 512Mbit.... except that it dumps a 40MB file, not 64MB.

    Nah, all my other games dump untrimmed. Plus that's the same size as other copies of the game floating around, so it's not just my dumper trimming it.

    I plan to get one eventually, but they're re pricey and oftentimes sold out, I figured this would be a cheap way just to test stuff first. Plus, I am also just plain curious how I can get it to work.

    Ah, I see, so it really is a case of multiple different-sized ROM chips.
     
  5. TriMesh

    TriMesh Site Supporter 2013-2017

    Joined:
    Jul 3, 2008
    Messages:
    1,953
    Likes Received:
    473
    In some cases, yes - although that isn't the only way that Nintendo did it - in some cases they actually made non-standard sized ROM chips - like the Japanese version of StarFox 64, which is also a 12MB/96Mb game - but is constructed using a single MX23L9602-35 96Mb ROM chip. I'm not sure what the basis was for choosing one approach over the other for any specific cart.
    StarFox.jpg
     
  6. Cyber Akuma

    Cyber Akuma Member

    Joined:
    Aug 10, 2017
    Messages:
    6
    Likes Received:
    1
    Geez, that's.... surprising. I can't imagine a custom non-factor-of-two chip like that would have been cheap.

    Don't suppose you can answer any of my other questions?
     
  7. TriMesh

    TriMesh Site Supporter 2013-2017

    Joined:
    Jul 3, 2008
    Messages:
    1,953
    Likes Received:
    473
    I can try, but I can't tell you what Paper Mario has in it - I don't have that cart. If you can take a photo of the PCB I might be able to guess (it's not 100%, because some of the vendors that Nintendo used had unhelpful part numbers).

    The cart has to have the correct save type or saving won't work. - there are 4KB and 16KB serial EEPROMs, flash storage and SRAM (and also the controller paks, but obviously they aren't in the cart). You also have to make sure the CIC type matches if you are using the original boot code.

    Homebrew used whatever people wanted - in a lot of cases it was the old 4kb serial save chip that was in the early carts. It's also worth pointing out that a lot of homebrew won't run on real hardware.
     
  8. Conker2012

    Conker2012 Intrepid Member

    Joined:
    Oct 19, 2012
    Messages:
    659
    Likes Received:
    75
    Regarding the hacked game roms not running on a real N64, most of them do, with the big exceptions being Super Mario 64 hacks. Most SM64 hacks won't work on a real N64 because the SM64 editor used to make these hacks was written by someone who only tested the results on N64 emulators, not real hardware, and the emulators weren't 100% accurate, resulting in the SM64 editor doing things in the resulting hacks that would crash a real N64.

    It would be unfair to blame the creator of the SM64 editor for this, because at the time the hardware needed to play homebrew on an N64 was very expensive and hard to get (the CD based backup systems, whereas nowadays with the Everdrive 64 it's much easier and cheaper to run homebrew on a real N64), and apparently he or she left the N64 scene years ago and so isn't around to fix the faults in the editor. What is more annoying though is that the present holder of the editor's source code allegedly refuses to either fix the flaws or to release the source code for others to fix. Even more annoying is the worry that future N64 emulators, which aim for ebtter accuracy, will not be able to run most SM64 hacks since they of course depend on inaccuracies that will not exist in later emulators.

    There's more information about the SM64 hacks' problems at:

    http://krikzz.com/forum/index.php?topic=5489.msg46127#msg46127

    Anyway, for the past few years, most N64 hacks other than the SM64 ones have run fine on real hardware, but for hacks that are more than five or six years old then it's more random (again, thanks to them being able to run on the innaccurate emulators). There's a good real-N64 compatibility list in progress at:

    http://krikzz.com/forum/index.php?topic=7094.0

    And some people do fix older hacks to run on real hardware, but apparently with SM64 hacks the difficulty ranges from rather to very difficult, since the editor can potentially store lots of game in a way that the N64 can't use. Also, some clever people write SM64 hacks that deliberately go beyond what the real N64 could do (such as more items onscreen, larger open areas than normal, etc) and so even if they could be made to work on the original hardware then they'd run much slower than on an emulator, probably making them unplayable.

    Still, other than the Super Mario 64 hacks, I don't think there are any really good ones that won't work on a real N64 and flash cartridge (such as the Everdrive 64, or 64Drive). And they all save and load their data fine, at least on the Everdrive 64 (the only flash cartridge I have).
     
  9. Cyber Akuma

    Cyber Akuma Member

    Joined:
    Aug 10, 2017
    Messages:
    6
    Likes Received:
    1
    So the save type can't be converted? I saw an option on Sanni's cart reader to convert savetypes, but I wasn't sure if that would work for such a thing to get a SRAM game to save to eeprom or whatever.
     
  10. rso

    rso Not a member. You're imagining things.

    Joined:
    Mar 26, 2010
    Messages:
    2,160
    Likes Received:
    425
    Back when I used a Z64, there were occasionally patches to convert certain games' save types (e.g. 16k -> 4k eeprom, flash -> 16k eeprom). But there wasn't a lot of them, sometimes they lost features (e.g. after patching, only the first (ingame) save slot would be usable), and usually they stopped coming altogether once the new save type was common enough for most people to have picked up such a cart to have the backup unit save to.

    TL;DR: can and has been done, buggy, and no easy/automated way to do it (that I know of).
     
  11. TriMesh

    TriMesh Site Supporter 2013-2017

    Joined:
    Jul 3, 2008
    Messages:
    1,953
    Likes Received:
    473
    To be fair, most of my experience with this stuff was a while ago, before flash carts were widely available and I was doing my testing using either a z64 or the bung V64. Back then, pretty much every hack I tried didn't work - it's good to hear the situation has improved.
     

Share This Page