mupen64plus-core icon indicating copy to clipboard operation
mupen64plus-core copied to clipboard

64DD emulation

Open LuigiBlood opened this issue 10 years ago • 21 comments

Been working on 64DD emulation for a while, implemented code on 64DD ports like I did with Project64, and then with the actual emulation, using MAME 64DD disk format as it is closer to physical (makes it easier).

Except it's quite hard to implement, and every disk reads makes mupen64plus freeze (the debugger still says it works, even though the window clearly froze). And I don't know why.

https://github.com/LuigiBlood/mupen64plus-core/tree/64dd/src/dd

LuigiBlood avatar Aug 15 '15 22:08 LuigiBlood

cc: @richard42 @bsmiles32 @Ari64 @Gillou68310 @littleguy77 ???

LuigiBlood has put a lot of work into reverse engineering the 64DD and provided implementations for other emulators. Does it make sense for 64DD support to slip through the cracks in M64P?

clobber avatar Oct 02 '15 18:10 clobber

64DD support in m64p make sense, I suppose we simply lack of developers tackling this problem. :(

Narann avatar Oct 02 '15 18:10 Narann

I still want to tackle this but I need help on this one.

LuigiBlood avatar Oct 02 '15 19:10 LuigiBlood

@LuigiBlood So have you made any progress on this, LuigiBlood?

I would be willing to help, but I don't think the debugger and other stuff works in the GUI's does it? I use Mupen64Plus-Qt...

DerekTurtleRoe avatar Feb 18 '16 04:02 DerekTurtleRoe

Absolutely none, and the apparent lack of interest from m64p devs doesn't help at all. D:

LuigiBlood avatar Feb 18 '16 07:02 LuigiBlood

@LuigiBlood Huh. Not even sure what to say about that. :disappointed:

Is your fork up to date with the latest changes?

DerekTurtleRoe avatar Feb 19 '16 00:02 DerekTurtleRoe

Honestly you may see 64DD support for mupen64 core for RetroArch (I promised it). And we'll see if I'll port that at some point.

LuigiBlood avatar Feb 19 '16 00:02 LuigiBlood

@LuigiBlood What about BizHawk? I know that sounds weird, but it is pretty much the same kind of thing, right?

DerekTurtleRoe avatar Feb 19 '16 01:02 DerekTurtleRoe

BizHawk is more special. But not my priority yet.

LuigiBlood avatar Feb 19 '16 01:02 LuigiBlood

@LuigiBlood More special? :laughing:

I understand, I didn't know it was much different from the RetroArch core other than some Banjo-Kazooie/Banjo-Tooie additions.

DerekTurtleRoe avatar Feb 19 '16 05:02 DerekTurtleRoe

@LuigiBlood How's going with the 64dd support in m64+? I'd love to try some Mario Talent, unfortunately I can't because I'm on Linux and thus Project64 is not on the table.

Mastergatto avatar Jul 08 '17 10:07 Mastergatto

I did implement it in parallel-n64 back then... but I honestly don't remember how I really did it. Plus implementing it here means I have to manage saving and stuff proper and I don't have that much time for that yet...

EDIT: If anyone wants to port my code feel free to ask me questions and I'll still try to help, no problem.

LuigiBlood avatar Jul 08 '17 10:07 LuigiBlood

Alright, I'll check parallel-n64 then, it's in RetroArch, right? Thanks.

Obviously I still want to see some 64DD emulation in m64+, but there's no hurry, maybe one day, now that there's some valid alternatives for Linux in the meanwhile...:)

Mastergatto avatar Jul 08 '17 11:07 Mastergatto

That said, even in parallel-n64: Japan Pro Golf Tour 64 is not in a playable state. And it seems to be an issue not related to graphics.

Reminds me that it does not support disk swapping, which 6 games makes use of.

LuigiBlood avatar Jul 08 '17 11:07 LuigiBlood

@loganmc10 since you're very active in the project now, maybe you have some interest in getting LuigiBlood's 64DD support merged?

clobber avatar Aug 29 '17 19:08 clobber

If I did take on the task I'd probably look at the implementation in PJ64, since I assume it's more complete. I've become pretty familiar with the code and the interrupt system and whatnot so I think I could do it.

Honestly though I find myself lacking the motivation on this one... all the games are Japanese...I might get to it someday just for the sake of completeness, but probably not soon.

loganmc10 avatar Aug 29 '17 19:08 loganmc10

May wanna look at parallel-n64 code where I managed to make it work.

To be honest it has been a while so I can't tell you how I really did it. But it's basically like my implementation in Project64 with forced interrupts because mupen64plus literally cannot be trusted for that (IIRC)

LuigiBlood avatar Aug 29 '17 19:08 LuigiBlood

Honestly though I find myself lacking the motivation on this one... all the games are Japanese...

Then there's a good news for you: A translation, made by LuigiBlood, is available for Mario Artist Talent and Mario Artist Paint.

Mastergatto avatar Aug 30 '17 11:08 Mastergatto

Hi there i had compile to a custom prefix the latest version of mupen64plus and its all components, but i don't had idea how i can start N64DD Emulation

Someone can explaime because i try things like :

./mupen64plus --dd-ipl-rom iplrom.n64 --dd-disk sm64dv.ndd 
 __  __                         __   _  _   ____  _             
|  \/  |_   _ _ __   ___ _ __  / /_ | || | |  _ \| |_   _ ___ 
| |\/| | | | | '_ \ / _ \ '_ \| '_ \| || |_| |_) | | | | / __|  
| |  | | |_| | |_) |  __/ | | | (_) |__   _|  __/| | |_| \__ \  
|_|  |_|\__,_| .__/ \___|_| |_|\___/   |_| |_|   |_|\__,_|___/  
             |_|         https://mupen64plus.org/               
Mupen64Plus Console User-Interface Version 2.5.9

UI-Console: attached to core library 'Mupen64Plus Core' version 2.5.9
UI-Console:             Includes support for Dynamic Recompiler.
Core: Using full mem base
UI-Console Error: no ROM filepath given

mupen64plusdd001

Game is not loaded & started.

inukaze avatar Apr 13 '20 20:04 inukaze

This issue exists I think it would be practical to use it for discussing 64DD implementation. @bsmiles32

Saving support is for me good enough to be merged: https://github.com/mupen64plus/mupen64plus-core/pull/829

However there's still a lot to add for more advanced full 64DD support:

  • [x] Saving Support (I think it's ready.)
  • [ ] D64 Edit Bug Fix D64 Full Disk Saves is broken because of a miscalculation in LBA RAM End. MAX_LBA should be used instead.
  • [ ] Disk Access Time setting Settings for both instant and delayed mechanical response. (Paint Studio prototype needs the latter.)
  • [ ] Disk Swap One of the 64DD's main feature is to swap disks to access other game contents.
  • [ ] Game Info to Plugin The ability to send Game Info to the plugin. Project64 currently forges them using the regular N64 ROM header format.
  • [ ] Disk only Loading Ability to run a disk game like a ROM. Currently a ROM that isn't combo (not C***) is required to launch 64DD games, which is a bit unconventional.
  • [ ] Support for RDB And of course the emulator has to be able to configure itself depending on the 64DD title.

LuigiBlood avatar Jan 26 '21 04:01 LuigiBlood

The thing of Each Config per Title, is a thing some years i got i mention like a Feature Request, because i had a lot of configurations of mupen64plus.cfg for games i had, because the configuration for Perfect Dark, is very different for Mortal Kombat Trilogy, or Mario Party 2.

Specially when i just play with keyboard, and each of them works better with a specific combinations of plugins, and very specific configuration per plugin, hardware depend, to get the equilibrium between quality and performance.

i suggest use the title and/or the CRC of Rom or MD5 of each know rom for auto-generate the configuration file per title. independent if n64 or n64dd. a feature like that can be very useful on projects like this or pcsxr svn

i forget mention, some weeks after of that i can play n64dd emulation here a video : https://www.dailymotion.com/video/x7tjynj

inukaze avatar Jan 26 '21 20:01 inukaze