I have a dos game(power dolls 1 korean version) which has unusual symptoms of unable to use save option. I have heard from korean that it is totally impossible to use save option of power dolls1 korean version(PD1) in dosbox,But It is possible to use this option(save) if you play PD1 in vmware.
Step to use save option in PD1
1.Exetract attached pd1.rar to pd1 directory in c drive(c:\pd1)
2.Execute pd1.bat and when there is a screen of requiring password input,Press any random key and enter keystroke.
3.there would be three options in main menu(Game start,Data load,Exit). select "Data Load"
4.Select first or second slot(Scenario 머나먼 댐 작전(Operation far away Dam))
5.When you get into gameplay, select SYSTEM button listed on the lower part(there is six button in lower part)
6.There would be three option(저장(data save), 읽기(data load),작전중지(terminate gameplay and go back to main menu)), if you select SYSTEM button correctly
7.Select 저장(data save) ,then A error message window will pops up(HD 이외에는 저장불가(It is impossible to save a file to non-hard disk media.)). that is what unusual symptoms I want to fix.
I executed DOSBox debugger again this time, and noticed that whenever I tried to use save option in gameplay of PD1,below message displayed on debugger windows.
14491232: EXEC:Execute C:\PD1\PDSYSTEM.EXE 0
14491232: FILES:file open command 0 file C:\PD1\PDSYSTEM.EXE
14492200: INT10:Function FE00 not supported
16466281: BIOS:INT13: Function 15 called on drive 80 (dos drive 2)
16467166: BIOS:INT16:Unhandled call 14
I tried directly booting from hard disk image file(boot -l c) ,It is still impossible to use save option...
Is there any solution to slove this problems?
Any reply would be appreciated.
For your information,Shown Below is whole debug message from log file of DOSbox debugger.
592850265: FILES:Special file open command 80 file C:\PD1\PD1.BAT
592850565: EXEC:Parsing command line: pd-crack.com
592850569: EXEC:Execute pd-crack.com 0
592850569: FILES:file open command 0 file pd-crack.com
695569431: EXEC:Execute pd.com 0
695569431: FILES:file open command 0 file pd.com
695569461: FILES:file open command 0 file nul
695569675: FCB:DOS:29:FCB Parse Filename, result:al=0
695569682: FCB:DOS:29:FCB Parse Filename, result:al=0
695569702: EXEC:Execute \PD1\POWERPD.COM 0
695569702: FILES:file open command 0 file \PD1\POWERPD.COM
695569914: FILES:file open command 0 file font.kor
695571308: IOCTL:NUL:WRITE
695571308: IOCTL:NUL:WRITE
695571308: IOCTL:NUL:WRITE
695571308: IOCTL:NUL:WRITE
695571308: IOCTL:NUL:WRITE
695571308: IOCTL:NUL:WRITE
695571308: IOCTL:NUL:WRITE
695571308: IOCTL:NUL:WRITE
695571308: IOCTL:NUL:WRITE
695571308: IOCTL:NUL:WRITE
695571308: IOCTL:NUL:WRITE
695571308: IOCTL:NUL:WRITE
695571308: IOCTL:NUL:WRITE
695571308: IOCTL:NUL:WRITE
695571308: IOCTL:NUL:WRITE
695571308: IOCTL:NUL:WRITE
695571308: IOCTL:NUL:WRITE
695571308: IOCTL:NUL:WRITE
695571308: IOCTL:NUL:WRITE
695571308: IOCTL:NUL:WRITE
695571308: IOCTL:NUL:WRITE
695571308: IOCTL:NUL:WRITE
695571308: IOCTL:NUL:WRITE
695571590: FCB:DOS:29:FCB Parse Filename, result:al=0
695571597: FCB:DOS:29:FCB Parse Filename, result:al=0
695571617: EXEC:Execute \PD1\GAMEMAIN.EXE 0
695571617: FILES:file open command 0 file \PD1\GAMEMAIN.EXE
695594250: FILES:Special file open command 20 file C:\PD1\GAMEMAIN.EXE
695594377: FILES:Special file open command 20 file C:\PD1\GAMEMAIN.EXE
695617243: FCB:DOS:29:FCB Parse Filename, result:al=0
695617259: FCB:DOS:29:FCB Parse Filename, result:al=0
695617380: EXEC:Execute C:\PD1\PDSYSTEM.EXE 0
695617380: FILES:file open command 0 file C:\PD1\PDSYSTEM.EXE
695618444: INT10:Function FE00 not supported
777366212: BIOS:INT13: Function 15 called on drive 80 (dos drive 2)
777367785: BIOS:INT16:Unhandled call 14
777368071: INT10:Set Video Mode 12
777368071: VGA:Blinking 0
777368207: BIOS:INT16:Unhandled call 14
781700132: VGA:h total 100 end 80 blank ( 80/ 98) retrace ( 84/ 96)
781700132: VGA:v total 525 end 480 blank (488/517) retrace (490/492)
781700132: VGA:VGA refresh rate is now, 0.000
781700132: VGA:screen: 1.333, scanfield: 1.345, scan: 0.991, vratio: 1.333
781700132: VGA:h total 0.03178 (31.47kHz) blank(0.02542/0.03114) retrace(0.02669/0.03051)
781700132: VGA:v total 16.68322 (59.94Hz) blank(15.50745/16.42900) retrace(15.57100/15.63456)
781700132: VGA:video clock: 25.17MHz mode M_EGA
781700132: VGA:640x480, 59.94Hz, 8bpp, screen 1.333
799119219: BIOS:INT16:Unhandled call 14
799119365: INT10:Set Video Mode 3
799119365: VGA:Blinking 8
799119787: FILES:file open command 0 file FONT_ANK.DAT
799120501: BIOS:INT16:Unhandled call 14
799120785: INT10:Set Video Mode 12
799120785: VGA:Blinking 0
799120920: BIOS:INT16:Unhandled call 14
799126277: MOUSE:New video is the same as the old
799126277: KEYBOARD:INT 33h reset
799129926: MOUSE:Define Hortizontal range min:0 max:639
799130035: MOUSE:Define Vertical range min:0 max:479
799210190: FILES:file open command 0 file c:\pd1\DRV\CTMIDI.DRV
799211064: FILES:file open command 0 file c:\pd1\DRV\AUXDRV.DRV
799439299: PIT:PIT 0 Timer at 18.2068 Hz mode 3
803026512: VGA:h total 100 end 80 blank ( 80/ 98) retrace ( 84/ 96)
803026512: VGA:v total 525 end 480 blank (488/517) retrace (490/492)
803026512: VGA:VGA refresh rate is now, 0.000
803026512: VGA:screen: 1.333, scanfield: 1.345, scan: 0.991, vratio: 1.333
803026512: VGA:h total 0.03178 (31.47kHz) blank(0.02542/0.03114) retrace(0.02669/0.03051)
803026512: VGA:v total 16.68322 (59.94Hz) blank(15.50745/16.42900) retrace(15.57100/15.63456)
803026512: VGA:video clock: 25.17MHz mode M_EGA
1704162328: FILES:file open command 0 file MIDIGM.CFG
1704167683: FILES:file open command 0 file mes1.kpc
1704169951: FILES:file open command 0 file mes1.kpc
1704405912: FILES:file open command 0 file point1.dat
1704408362: FILES:file open command 0 file point1.dat
1705048223: FILES:file open command 1 file initdata.bin
1705049529: FILES:file open command 0 file userdisk.id
1705148586: MOUSE:Define Hortizontal range min:0 max:639
1705148695: MOUSE:Define Vertical range min:40 max:439
1708504278: FILES:file open command 0 file kgd.ASK
1708506454: FILES:file open command 0 file kgd.ASK
2135833486: FILES:file open command 0 file PDL_85GM.MID
2136407314: PIT:PIT 0 Timer at 18.2068 Hz mode 3
2155382475: PIT:PIT 0 Timer at 88.0058 Hz mode 3
2155386236: FILES:file open command 0 file pl00.gcp
2155388504: FILES:file open command 0 file pl00.gcp
2185788486: FILES:file open command 0 file deta.ask
2185790754: FILES:file open command 0 file deta.ask
2262428358: FILES:file open command 0 file of.ask
2262430444: FILES:file open command 0 file of.ask
2291906900: FILES:file open command 0 file lim.ask
2291909076: FILES:file open command 0 file lim.ask
2368549193: FILES:file open command 0 file line.ask
2368551461: FILES:file open command 0 file line.ask
2445192225: FILES:file open command 0 file serv.ask
2445194493: FILES:file open command 0 file serv.ask
2558138584: FILES:file open command 0 file pd_logo.gcp
2558141124: FILES:file open command 0 file pd_logo.gcp
2598149791: FILES:file open command 0 file initdata.bin
4037164780: FILES:file open command 0 file RECORD00.BIN
4037166628: FILES:file open command 0 file RECORD00.BIN
4037169274: FILES:file open command 0 file RECORD00.BIN
4037172395: FILES:file open command 0 file RECORD01.BIN
4037174243: FILES:file open command 0 file RECORD01.BIN
4037176889: FILES:file open command 0 file RECORD01.BIN
4037180028: FILES:file open command 0 file RECORD02.BIN
4037182927: FILES:file open command 0 file RECORD03.BIN
4037185826: FILES:file open command 0 file RECORD04.BIN
4037188725: FILES:file open command 0 file RECORD05.BIN
4037191624: FILES:file open command 0 file RECORD06.BIN
4037194523: FILES:file open command 0 file RECORD07.BIN
4037197422: FILES:file open command 0 file RECORD08.BIN
4037200321: FILES:file open command 0 file RECORD09.BIN
4160239139: FILES:file open command 0 file RECORD01.BIN
4160241785: FILES:file open command 0 file RECORD01.BIN
4160892359: FILES:file open command 0 file mes0.kpc
4160894627: FILES:file open command 0 file mes0.kpc
4161158865: FILES:file open command 0 file point0.dat
4161161315: FILES:file open command 0 file point0.dat
310172672: PIT:PIT 0 Timer at 18.2068 Hz mode 3
310175183: FILES:file open command 0 file PDL_01GM.MID
310714986: PIT:PIT 0 Timer at 18.2068 Hz mode 3
453254404: PIT:PIT 0 Timer at 99.0028 Hz mode 3
453286701: FILES:file open command 0 file KEMURI01.dat
453289347: FILES:file open command 0 file KEMURI01.dat
453556917: FILES:file open command 0 file MISSON00.MDT
453559563: FILES:file open command 0 file MISSON00.MDT
454025728: FILES:file open command 0 file MAP00ALT.BDT
454028374: FILES:file open command 0 file MAP00ALT.BDT
454414363: FILES:file open command 0 file S00_DATA.BDT
454417009: FILES:file open command 0 file S00_DATA.BDT
454422456: FILES:file open command 0 file misson00.mpd
454425102: FILES:file open command 0 file misson00.mpd
454485868: FILES:file open command 0 file misson00.mpd
454488514: FILES:file open command 0 file misson00.mpd
457808853: FILES:file open command 0 file UNIT.DAT
457811121: FILES:file open command 0 file UNIT.DAT
457871711: FILES:file open command 0 file UNIT.DAT
457873979: FILES:file open command 0 file UNIT.DAT
460908689: FILES:file open command 0 file KIRI.SLD
460910957: FILES:file open command 0 file KIRI.SLD
460971526: FILES:file open command 0 file KIRI.SLD
460973794: FILES:file open command 0 file KIRI.SLD
476077755: MOUSE:Define Hortizontal range min:0 max:639
476077864: MOUSE:Define Vertical range min:0 max:479
476080331: FILES:file open command 0 file hex_gt0.gcp
476082871: FILES:file open command 0 file hex_gt0.gcp
482492563: FILES:file open command 0 file faceall.rgb
482607051: FILES:file open command 0 file faceall.rgb
482958426: FILES:file open command 0 file faceall.rgb
483189394: FILES:file open command 0 file faceall.rgb
826052912: BIOS:INT13: Function 15 called on drive 80 (dos drive 2)
965980029: MOUSE:Define Hortizontal range min:0 max:639
965980138: MOUSE:Define Vertical range min:40 max:439
1381203013: PIT:PIT 0 Timer at 18.2068 Hz mode 3
1381204630: FILES:file open command 0 file PDL_85GM.MID
1381814575: PIT:PIT 0 Timer at 18.2068 Hz mode 3
1468761683: PIT:PIT 0 Timer at 88.0058 Hz mode 3
1468768223: FILES:file open command 0 file initdata.bin
1469420062: FILES:file open command 0 file pd_logo.gcp
1469422602: FILES:file open command 0 file pd_logo.gcp
1993153273: PIT:PIT 0 Timer at 18.2068 Hz mode 3
1993255918: MOUSE:Define Hortizontal range min:0 max:639
1993256027: MOUSE:Define Vertical range min:0 max:479
2025181360: BIOS:INT16:Unhandled call 14
2025181507: INT10:Set Video Mode 3
2025181507: VGA:Blinking 8
2025182663: FILES:file open command 0 file nul
2025182877: FCB:DOS:29:FCB Parse Filename, result:al=0
2025182884: FCB:DOS:29:FCB Parse Filename, result:al=0
2025182904: EXEC:Execute \PD1\POWERPD.COM 0
2025182904: FILES:file open command 0 file \PD1\POWERPD.COM
2025183006: INT10:Set Video Mode 3
2025183006: MOUSE:New video is the same as the old
2025183024: IOCTL:NUL:WRITE
2025183024: IOCTL:NUL:WRITE
2025183024: IOCTL:NUL:WRITE
2025183024: IOCTL:NUL:WRITE
2025183024: IOCTL:NUL:WRITE
2025183024: IOCTL:NUL:WRITE
2025183024: IOCTL:NUL:WRITE
2025183024: IOCTL:NUL:WRITE
2025183024: IOCTL:NUL:WRITE
2025183024: IOCTL:NUL:WRITE
2025183024: IOCTL:NUL:WRITE
2025183024: IOCTL:NUL:WRITE
2025183024: IOCTL:NUL:WRITE
2025183024: IOCTL:NUL:WRITE
2025183024: IOCTL:NUL:WRITE
2025183024: IOCTL:NUL:WRITE
2025183024: IOCTL:NUL:WRITE
2025183024: IOCTL:NUL:WRITE
2025183024: IOCTL:NUL:WRITE
2025183024: IOCTL:NUL:WRITE
2025183024: IOCTL:NUL:WRITE
2025183100: FILES:Special file open command 80 file C:\PD1\PD1.BAT
2026432932: VGA:h total 100 end 80 blank ( 80/ 98) retrace ( 85/ 97)
2026432932: VGA:v total 449 end 400 blank (407/442) retrace (412/414)
2026432932: VGA:VGA refresh rate is now, 0.000
2026432932: VGA:screen: 1.333, scanfield: 1.312, scan: 1.016, vratio: 1.600
2026432932: VGA:h total 0.03178 (31.47kHz) blank(0.02542/0.03114) retrace(0.02701/0.03082)
2026432932: VGA:v total 14.26806 (70.09Hz) blank(12.93341/14.04562) retrace(13.09230/13.15585)
2026432932: VGA:video clock: 28.32MHz mode M_TEXT
2026432932: VGA:640x400, 70.09Hz, 8bpp, screen 1.333
2115003257: SBLASTER:DSP:Reset
implementing mentioned call ( int 13 ah 15 makes the saving work)
(cf 0, ah 3)
Not sure about the other parameters, but the game doesn't seem to care
Here is the reference
http://www.delorie.com/djgpp/doc/rbinter/id/45/6.html
Thank you very much for your reply!
I surprised that I can use save option in PD1 by following your workaround.I had heard from korean that It is totally impossible to use save option of PD1 in dosbox and It is waste of time to try to fix this problem.
Westerner is incredibly good at game hacking and reversing engineering.I think East Asians is absolutely no match for Westerner in that field. :p
But I have used Dosbox SVN r4019 + savestates Build for playing PD1,because it supports its own savestates option, and It seems that there is no debugger of Dosbox SVN r4019 + savestates Build at all..So it is impossible to save game progress so far on PD1's save slot...even if I follow your workaround.
Anyway,I really appreciated your reply,At least You proved this save problem can be fixed by dosbox debugger!
Last edit: sang heon 2018-04-01
If you use the workaround (debugger steps), then you don't need the savestates build.
But,I already have played PD1 with Dosbox + savestates Build more than a week.
Since I already have savestates of Dosbox SVN, I dislike to play PD1 repetitively from the beginning ..
I want to use your workaround in order to save my play progress from Dosbox savestates Build which size is very big(in my case, total size of savestate exceeds 600mb) very picky about configure files(dosbox.conf), Moreover it is able to save realtime gamestate no more than ten slot.
Last edit: sang heon 2018-04-02
if you want to test the workaround yourself:
fixed in 4091