Lo rom game on hi rom cart? Or vice versa?

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Lo rom game on hi rom cart? Or vice versa?
by on (#124943)
Can a lo rom game run on a hi rom cart if the address lines are shifted on the rom? Or is there more to it than that?

I have heard of a tool that converts Lo rom game files to hi rom format but I don't know if it works or where to get it.

Basically, can a Mario world game be made/altered to run on a ken Griffey cart (hi rom cart) or vice versa?
I was thinking of programming the rom with the addresses already shifted skipping A15. So it would be an easy drop in. Am I on the right track? Or is it more advantageous to go from hi to Lo? I.e. put a DKC on a Lo rom cart? Just wanting to understand the differences between the 2 styles of carts with SRAM on both.

Thanks!
Re: Lo rom game on hi rom cart? Or vice versa?
by on (#124952)
The Super Power Pak and it's more modern equivalent can play both lo rom and hi rom games.
Re: Lo rom game on hi rom cart? Or vice versa?
by on (#124954)
Thank you. Yes, I know of the powerpak and even own a few of them. My question is more academic so I can learn about the differences between lo and hi rom beyond the obvious.

Thanks!
Re: Lo rom game on hi rom cart? Or vice versa?
by on (#124958)
LoROM is emulator authors' term for not connecting A15 from the console to anything in the ROM, which the ROM's internal header indicates as mapping mode $20. So you get 32K pieces of the ROM at $008000-$00FFFF, $018000-$01FFFF, $028000-$02FFFF, etc. usually mirrored up to $408000, $808000, and $C08000. Contrast this to HiROM, mapping mode $21, which does connect A15 but doesn't connect A22. Its ROM appears as one linear region mapped to $400000-$7DFFFF and $C00000-$FFFFFF, with every other 32K mirrored down to keep the interrupt vectors available: $408000-$40FFFF to $008000-$00FFFF, $418000-$418FFF to $018000-$018FFF, etc.

If there is only one memory on the cart (one mask ROM, no RAM), you can convert games between LoROM and HiROM by rewiring the A15 trace and then using Farid's EPROM Pin Swapper to rearrange the headerless (.sfc) ROM image to take this swapping into account.

But SRAM makes this a bit harder. LoROM usually puts SRAM in the upper part of normal address space ($7x0000-$7xFFFF), while HiROM puts it in a place reminiscent of where games for the original NES put it ($306000-$307FFF).
Re: Lo rom game on hi rom cart? Or vice versa?
by on (#124965)
no pin swapper for a 32m roms?? Or could I split the 32m rom into 4 -- 8mbit roms, do the pin swap on each of them, then re-combine them?

One question I have is if you have a (example) Lo rom game on a Hirom cart with sram, like Mario All Stars on a ken griffy Jr cart, and I swap the address lines. When the game writes to the sram, what difference does it make where it writes the data? So long as when a read is asserted, it grabs the data from the sram wherever it was written to? It may be in the wrong place within the sram but why would that matter so long as when a read is asserted, the proper data is transferred?
isn't the sram disabled when the rom is being read and vice versa?
Re: Lo rom game on hi rom cart? Or vice versa?
by on (#124966)
Markfrizb wrote:
One question I have is if you have a (example) Lo rom game on a Hirom cart with sram, like Mario All Stars on a ken griffy Jr cart, and I swap the address lines. When the game writes to the sram, what difference does it make where it writes the data?

The difference between LoROM and HiROM in this respect is how they generate the chip select signal for the SRAM chip. Memories in this architecture rely on other circuitry to do the "decoding", that is, to translate an address into a "yes, it's my turn to speak" signal. LoROM and HiROM PCBs generate the SRAM enable signal in response to different address ranges.
Re: Lo rom game on hi rom cart? Or vice versa?
by on (#124969)
tepples wrote:
Markfrizb wrote:
One question I have is if you have a (example) Lo rom game on a Hirom cart with sram, like Mario All Stars on a ken griffy Jr cart, and I swap the address lines. When the game writes to the sram, what difference does it make where it writes the data?

The difference between LoROM and HiROM in this respect is how they generate the chip select signal for the SRAM chip. Memories in this architecture rely on other circuitry to do the "decoding", that is, to translate an address into a "yes, it's my turn to speak" signal. LoROM and HiROM PCBs generate the SRAM enable signal in response to different address ranges.


THIS is the information I am wanting to learn. I supposed A15 being skipped or not is one of those signals? I do understand that A23 (cart 48) is the Ex hi rom pin that determines rom1 or rom2 if using a decoder (74xx139). I supposed if you had a 64mb rom, then a decoder wouldn't be needed.
And (correct me if I am wrong) A22 (cart 47) is "hi rom" normal. So is this "I want to read your contents Mr. ROM" line from the console? Same for A15 in low rom games? And to do a lo rom on a hi rom cart, is it just a matter of grounding the mad1 pin 10 to make the changes (aside from the address line shifts)?
Is there documentation in laymen's terms on how the addressing works for the sram?
Re: Lo rom game on hi rom cart? Or vice versa?
by on (#124977)
Just adding this to the topic, there are more than 2 schemes for mapping SRAM. Meaning more than one for LoROM and one for HiROM. Pretty sure Ys 3 or another Ys game maps SRAM slightly different than normal which causes problems on certain devices.
Re: Lo rom game on hi rom cart? Or vice versa?
by on (#124980)
MottZilla wrote:
Just adding this to the topic, there are more than 2 schemes for mapping SRAM. Meaning more than one for LoROM and one for HiROM. Pretty sure Ys 3 or another Ys game maps SRAM slightly different than normal which causes problems on certain devices.


Are the Y's games on standard 1J or 1A carts or is their carts a different numbers than the common carts?
Re: Lo rom game on hi rom cart? Or vice versa?
by on (#124989)
Sorry, I don't have any specifics. I just remember that one of the Ys games would not work on a number of flashcarts due to different SRAM mapping than usual. If you google around or even search this forum you might find something. I think on this forum maybe in a PowerPAK related thread.
Re: Lo rom game on hi rom cart? Or vice versa?
by on (#124990)
Google ys site:nesdev.com found this post claiming that Ys 3 is a LoROM game that writes to $7x8000-$7xFFFF, which worked on the early boards but not the later MAD-1 boards that decode only to $7x0000-$7x7FFF.
Re: Lo rom game on hi rom cart? Or vice versa?
by on (#125729)
http://www.romhacking.net/documents/292/

Hey group,
I downloaded this utility and all I get is a text document. Has anyone used this and if so, HOW do you use it???? Mia there a program that runs this??? I don't understand what to do with this.
Any help is appreciated.