msxDS 0.91

Nueva versión msxDS, sin duda el mejor emulador MSX para la Nintendo DS. Las novedades que presenta esta recién estrenada versión 0.91 son las siguientes:

  • Nueva configuración de botones X e Y (En Metal Gear al pulsar Y se abre la radio)
  • Corregido el registro de estado 4 del VDP
  • Menú de opciones añadido
  • Posibilidad de usar el controlador tipo paddle con software compatible
  • Añadida la emulación del controlador ASCII paddle, usado en Break Out
  • Corregido las instrucciones del z80 LDIR y LDDR. Goody y otros juegos ahora funcionan
  • Mejorada la compatibilidad con los discos. Undeadline, Fray, etc. ahora funcionan correctamente
Enlace relacionado: msxDS.

21 comentarios sobre «msxDS 0.91»

    1. No sé mucho de desarrollos para Nintendo DS pero necesitas el parche DLDI para que te funcione, aunque en la mayoría de las tarjetas no es necesario… Lo que puedo hacer es pasarte por email la carpeta completa de mi instalación (que no es esta última actualización) a ver si te funciona.

      Ya me contarás.

  1. cristian: The bios needed to run the emulator correctly are listed below. Note that for legal reasons, no file or link is provided. You should do your research yourself.

    for MSX 1 mode:
    MSX.ROM = National CF-2000 or FS-4000 ROM (CRC32: EE229390 or 071135E0)

    for MSX 2 mode:
    MSX2.ROM = National FS-4700 or FS-5000 ROM (CRC32: 9B3E7B97 or A44EA707)
    MSX2EXT.ROM = National FS-4700 or FS-5000 ROM (CRC32: 4A48779C or 43E7A7FC)

    for MSX 2+ mode:
    MSX2P.ROM = Panasonic FS-A1WX ROM (CRC32: 19771608)
    MSX2PEXT.ROM = Panasonic FS-A1WX ROM (CRC32: B8BA44D3)
    KANJI.ROM = Panasonic FS-A1WX ROM (CRC32: 1F6406FB)
    A1WXKDR.ROM = Panasonic FS-A1WX Kanji Basic ROM (CRC32: B4FC574D)

    for PSG+FM sound mode:
    FMPAC.ROM = Panasonic FM-PAC BIOS ROM (CRC32: 0E84505D)

    for Floppy Disk Drive emulation:
    DISK.ROM = Panasonic FS-FD1a Floppy Disk Drive extension controller ROM (CRC32: 697EAF4E)

  2. Bonjour Popolon !
    Excellent work as always 🙂 You say you fixed LDIR/LDDR and that made Goody work. I just tried this game on Dingux-MSX-PixaMod and it crashes at the same point than msxDS 0.90 so I guess it’s also affected by this LDIR bug.
    I have been looking at my sourcecode but I haven’t found anything wrong… I even implemented the undocumented XF and YF flags just in case, but Goody still refuses to work.
    Any hints about this fix, please? O:)

  3. Buenos dias and thank you 🙂 , there is still much work to do.

    We must remove the optimization of both the Z80 instructions: LDR and LDDR to solve the problem that causes a shift in the address pointed by the PC register. In Goody, there is an LDR that copies a block of data “on itself”, LDR is replaced by an XOR A and the Z80 continues to work normally.

    Like this:

    // do
    // {
    WrZ80(R->DE.W++,RdZ80(R->HL.W++));
    –R->BC.W;ICount-=21+2;
    // }
    // while(R->BC.W&&(ICount>0));

  4. Whoa, thank you Popolon! I would not have found it even in a million years! 🙂 Damn Goody and its dirty tricks, it had to be a Spanish game! 😀
    I hope I will be able to try your fix this weekend.
    You say “there is still much work to do”… such as what? I bet Konamito will be delighted to know what we can expect from msxDS in advance 😉

  5. It worked, thank you so much! 🙂
    But I think I like the optimization too much and I will just check if DE has overwritten any of the opcodes and exit the loop.

    By the way, I think this line:

    if(R->BC.W) { R->AF.B.l|=N_FLAG;R->PC.W-=2; }

    should be changed to:

    if(R->BC.W) { R->AF.B.l|=(N_FLAG|P_FLAG);R->PC.W-=2; }

    since flag P must be set if BC is not 0 (maybe an interrupt happened during the LDIR). And this change comes for free, it doesn’t take any memory or cycles at all 🙂

  6. Thank you for the information and other optimizations 😉 .

    Fortunately, the problem with Goody was not so hard to find. A comparison of blueMSX and msxDS was enough. The registers were saved in a file, and then were compared with the same configuration on blueMSX.

    Some types of SRAM, such as the PAC / FMPAC, do not work with msxDS, it should go better in the next version. But in the near future, the management of slots, the VRAM and the frequency of the CPU should be reworked.

  7. A small correction for the ROM disk controller that does not come from the device “Panasonic FS-FD1a” but rather “Panasonic FS-FD1”. There is a copy of this ROM with a different CRC32 (4C9B8214) whose operation will be the same.

    The crc32 of A1WXKDR.ROM is A068CBA9. B4FC574D is the crc32 of FS-A1WSX kanji ROM that you can use too.

  8. The management of slots? You mean being able to change how the different ROMs are arranged on the different memory slots and subslots? I remember the old days when a friend of mine was writting a MSX2 emulator for the Amiga computer that I thought that everything (bios, msx-basic, extended, disk) could be made to fit on a machine without using any subslots, so the emulation would be faster because no checks of 0xFFFF had to be made at every memory read or write… but he didn’t listen and implemented subslots anyway 😀
    Maybe a special “turbo” version of msxDS could be achieved this way, moving disk rom to slot 2 in case of need.

    By the way, a little suggestion: maybe you could implement a way to find and apply “pokes” to get extra lives, etc.

  9. The management of slots is not that of the latest sources fMSX, making its use less flexible. This management is necessary for a correct emulation of MSX 2 (and 2 +). This will cause other changes in the location of the ROMs and instant backup, is the reason why these changes are not a priority.

    There is always the possibility to limit certain functions to gain speed in a special version of the emulator, it’s an extreme view, which concerns only part of the games. This is another work that is not the purpose of msxDS.

    Emulation “customized” for each game allows, of course, to have a significant gain on the emulation speed (you can free up memory ITCM, remove screens and modes of unnecessary devices).

    I will add your proposal for a management “cheat code” to the list of things to do, although there are solutions to many games (http://msxsolutions.msxblue.com/).

  10. popolon : porque no subes los bios que probaste con el emulador para no tener que buscar por todo google?

Deja tu comentario sobre esto

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.