craiganderson Posted August 24, 2014 Share Posted August 24, 2014 hello, im working on a module. my first attempt at loading multiple disks. basically the emulator has 4 "slots" for disks. some games have two disks i need to load them both. (into drive 1 and drive 2 separately)..which i know how to do individually.....but some games only have one disk so the module needs to be able to do the following check to see if game has 1,2,3,4 disks? if one disk only....thats easy...load it if has multiple disks ...load them into the right drive (disk 1 in drive 1 etc) any modules you can recommend i look at to see how to do this? if anything comes to mind thanks craig Link to comment Share on other sites More sharing options...
dougan78 Posted August 25, 2014 Share Posted August 25, 2014 I would look at c64. Possibly. Link to comment Share on other sites More sharing options...
dougan78 Posted August 25, 2014 Share Posted August 25, 2014 Cant you just swap the disks on the 1 drive? What system? I am curious. Link to comment Share on other sites More sharing options...
craiganderson Posted August 25, 2014 Author Share Posted August 25, 2014 Sharp mz-2500. It seems like it works if all disks are loaded upon staring emulator. See murder club for an example. Link to comment Share on other sites More sharing options...
craiganderson Posted August 25, 2014 Author Share Posted August 25, 2014 My module works perfectly for single disk games. Want to add multiple disk games now Link to comment Share on other sites More sharing options...
craiganderson Posted August 25, 2014 Author Share Posted August 25, 2014 What is the standard way to name multiple disks? Link to comment Share on other sites More sharing options...
dougan78 Posted August 25, 2014 Share Posted August 25, 2014 Look dreamcast or saturn xml or c64 xml. Link to comment Share on other sites More sharing options...
ghutch92 Posted August 25, 2014 Share Posted August 25, 2014 You may want to look at Hyperlaunch's multigame feature. https://sites.google.com/site/hyperlaunch2/home/features/multigame It says it accepts the words disc, disk, tape. It also looks like these must be at the end of the game's name. Link to comment Share on other sites More sharing options...
craiganderson Posted August 25, 2014 Author Share Posted August 25, 2014 just fyi this older version of the emulator http://www.zophar.net/sharpmzx/emuz-2500.html (this is the one my module uses) (much faster) (and some games dont even load on the newer one below) seems to work better than the newer version http://homepage3.nifty.com/takeda-toshiya/mz2500/ just fyi Link to comment Share on other sites More sharing options...
craiganderson Posted August 25, 2014 Author Share Posted August 25, 2014 i think i figured it out this module (WIP) does the following if rom contains "(Disk" in its name, it will trim off the last 9 characters (i.e trims off (Disk 1) or (Disk 2) etc and then loads the trimmed rom name PLUS (Disk 1) into drive 1 the trimmed rom name PLUS (Disk 2) into drive 2 all the way up to drive 4 the emulator doesnt care if the disk doesnt exist (i.e. game is 2 disks not 4) cool thing is .... you can start with any number disk from hyperspin (i.e. click on disk 2 or 4 or 1 etc) as your starting point...but it puts the correct one into the correct drive just fyi so far so good works pretty good so far let me know if you see a problem with this that perhaps i am not seeing thanks MEmu = EmuZ-2500 MEmuV = Updated on Website: 10/11/2004 MURL = http://www.zophar.net/sharpmzx/emuz-2500.html MAuthor = craiganderson MVersion = 1.0 MCRC = iCRC = MID = MSystem = "Sharp MZ-2500"" ;---------------------------------------------------------------------------- ; FullScreen: Set fullscreen mode in HyperLaunch HQ "Edit Global Module Settings". ; ; RemoveMenuBar: Enable/Disable Removal of Menu Bar in HyperLaunch HQ "Edit Global Module Settings". ; ; HideMouseCursor: Enable/Disable Hiding of Mouse Cursor in HyperLaunch HQ "Edit Global Module Settings". ; ; Module currently ONLY loads disk images (.d88 is the one tested). ; ; Does not currently load games that need multiple disks. ; ; BIOS: IPL.ROM and KANJI.ROM are required. Other ROM images are optionally loaded if they exist. See readme.txt file for details. ;---------------------------------------------------------------------------- StartModule() FadeInStart() settingsFile := modulePath . "\" . moduleName . ".ini" Fullscreen := IniReadCheck(settingsFile, "settings", "Fullscreen","true",,1) RemoveMenuBar := IniReadCheck(settingsFile, "settings", "RemoveMenuBar","true",,1) HideMouseCursor := IniReadCheck(settingsFile, "settings", "HideMouseCursor","true",,1) 7z(romPath, romName, romExtension, 7zExtractPath) Run(executable, emuPath) WinWait("ahk_class CWINDOW") WinWaitActive("ahk_class CWINDOW") ; loading games with multiple disks If romName contains (Disk { StringTrimRight, trimmedromName, romName, 9 Sleep,250 WinMenuSelectItem, ahk_class CWINDOW, , FDD1, Insert Sleep, 1000 Loop { ControlGetText, edit1Text, Edit1, Open ahk_class #32770 If ( edit1Text = romPath . "\" . trimmedromName . " (Disk 1)" . romExtension ) Break Sleep, 150 ControlSetText, Edit1, %romPath%\%trimmedromName% (Disk 1)%romExtension%, Open ahk_class #32770 } Sleep,450 ControlSend, Button1, {Enter}, Open ahk_class #32770 Sleep,250 WinMenuSelectItem, ahk_class CWINDOW, , FDD2, Insert Sleep, 1200 Loop { ControlGetText, edit1Text, Edit1, Open ahk_class #32770 If ( edit1Text = romPath . "\" . trimmedromName . " (Disk 2)" . romExtension ) Break Sleep, 150 ControlSetText, Edit1, %romPath%\%trimmedromName% (Disk 2)%romExtension%, Open ahk_class #32770 } Sleep, 450 ControlSend, Button1, {Enter}, Open ahk_class #32770 Sleep, 250 WinMenuSelectItem, ahk_class CWINDOW, , FDD3, Insert Sleep, 1200 Loop { ControlGetText, edit1Text, Edit1, Open ahk_class #32770 If ( edit1Text = romPath . "\" . trimmedromName . " (Disk 3)" . romExtension ) Break Sleep, 150 ControlSetText, Edit1, %romPath%\%trimmedromName% (Disk 3)%romExtension%, Open ahk_class #32770 } Sleep, 450 ControlSend, Button1, {Enter}, Open ahk_class #32770 Sleep, 250 WinMenuSelectItem, ahk_class CWINDOW, , FDD4, Insert Sleep, 1200 Loop { ControlGetText, edit1Text, Edit1, Open ahk_class #32770 If ( edit1Text = romPath . "\" . trimmedromName . " (Disk 4)" . romExtension ) Break Sleep, 150 ControlSetText, Edit1, %romPath%\%trimmedromName% (Disk 4)%romExtension%, Open ahk_class #32770 } Sleep, 450 ControlSend, Button1, {Enter}, Open ahk_class #32770 } ELSE { Sleep,250 WinMenuSelectItem, ahk_class CWINDOW, , FDD1, Insert Loop { ControlGetText, edit1Text, Edit1, Open ahk_class #32770 If ( edit1Text = romPath . "\" . romName . romExtension ) Break Sleep, 150 ControlSetText, Edit1, %romPath%\%romName%%romExtension%, Open ahk_class #32770 } Sleep, 450 ControlSend, Button1, {Enter}, Open ahk_class #32770 } ;*******************FULLSCREEN******************************* If Fullscreen = true { Sleep, 555 WinMenuSelectItem, ahk_class CWINDOW, , Screen, Fullscreen } ;*******************RemoveMenuBar*************************** If RemoveMenuBar = true { Sleep, 555 DllCall("SetMenu", uint, WinActive( "A" ), uint, 0) ; Removes the MenuBar (thank you djvj) } ;*******************HideMouseCursor*************************** If HideMouseCursor = true { Sleep, 555 SystemCursor(OnOff=0) } FadeInExit() Process("WaitClose", executable) 7zCleanUp() FadeOutExit() ExitModule() CloseProcess: FadeOutStart() IfWinExist, EmuZ-2500 WinKill Return Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.