OpenMSX Universal ROMs Mapper

Page 1/3
| 2 | 3

By Accumulator

Champion (339)

Accumulator's picture

14-04-2023, 06:03

We have seen several and multiple ROMs with their own MAPPER (konami etc)?
Can't we find an universal mapper that are able all the roms with out any compromise ?

Login or register to post comments

By Briqunullus

Paladin (667)

Briqunullus's picture

14-04-2023, 07:17

Mapper type for roms is embedded in the hardware. It's how it was when multiple different publishers and manufacturers were around. Nowadays we can only emulate and replicate designs from that era.

By Vampier

Prophet (2413)

Vampier's picture

14-04-2023, 16:17

This is why I keep a overview here https://romdb.vampier.net/index.php and am thinking about headers for ROM file to indicate what mapper a ROM expects

By max_iwamoto

Hero (644)

max_iwamoto's picture

14-04-2023, 18:22

Vampier wrote:

This is why I keep an overview here https://romdb.vampier.net/index.php and am thinking about headers for ROM file to indicate what mapper a ROM expects

Maybe have a small separate file for each version of the ROM? Kind of like IPS. So you have the original ROM and then variations stored in separate files. Then emulator can offer you multiple ways to start this ROM based on the number of variations.

By Bengalack

Paladin (747)

Bengalack's picture

14-04-2023, 20:13

Vampier wrote:

This is why I keep a overview here https://romdb.vampier.net/index.php and am thinking about headers for ROM file to indicate what mapper a ROM expects

https://romdb.vampier.net/index.php?show=2501

No sure why it says "ES". Should be "NO" I think :) (Or multi, as the audio is made in NL)

By TomH

Champion (366)

TomH's picture

14-04-2023, 20:59

Vampier wrote:

This is why I keep a overview here https://romdb.vampier.net/index.php and am thinking about headers for ROM file to indicate what mapper a ROM expects

As the author of one of the more obscure emulators, I would strongly support this. In my implementation, which involves parallel execution, autodetection is accurate but very expensive.

Besides the practical concern, semantically the paging scheme is a physical fact of the cartridge which the existing images don't capture so such a header would produce a more-accurate image. It wouldn't just be a sop to emulation.

By Vampier

Prophet (2413)

Vampier's picture

14-04-2023, 23:16

no thinking about RIFF headers - more about that soon Wink

By Accumulator

Champion (339)

Accumulator's picture

15-04-2023, 06:58

The mapper is detectable by comparing write addresses in the start of the running code.
Konami5, VRC, Konami8 , ASCII8, ASCII16 etc have each their own way of addressing the memory space.

The nice checker from Tiny Yarou, The Tinyslotchecker, detects the mappers as well when cartridge is inserted.
TinySlotChecker3.2

By gdx

Enlighted (6217)

gdx's picture

15-04-2023, 10:01

Accumulator wrote:

Can't we find an universal mapper that are able all the roms with out any compromise ?

No. I suggested a simple method that would solve the problem, but it doesn't seem to appeal to Manuel.

The method is to save SHA1 and the mapper type to an annex database when we manually select the mapper for a ROM that is not already listed in the existing database. Only the last mapper would be stored (by overwriting the previous one), so once the right mapper was entered, we wouldn't have to re-enter it afterwards.

By Manuel

Ascended (19469)

Manuel's picture

15-04-2023, 10:46

I suggest to make an openMSX ticket with that idea and make a pull request for it... sounds like a good idea to me.

By Accumulator

Champion (339)

Accumulator's picture

15-04-2023, 14:15

I noticed OpenMSX has difficulties with the Mappers, when adding a cartridge on a running OpenMSX instance, the page, port select and secondary slot, It does not have the correct result. I have the opinion the cartridge mapper has the preference in selecting memory and pages. And is not checking in which slot he is only allowed to operate.
After you have inserted the cartridge in a running instance and doing a jp 0h, sometimes it freezes... and does not start. (Bubble Bobble, Aleste, etc)

Page 1/3
| 2 | 3