ZXDS questions...

edited July 2011 in Emulators
Hi Folks,

I am hoping someone on here knows something about ZXDS. I have downloaded the program to my daughters DSi (for testing purposes) and it works fine (I am using 128K+ mode). I have also downloaded my .TAP file that contains a BASIC program and some test data.

I have two questions than I hope someone can answer:

1) The "joystick" on the DSi does not emulate the cursor keys on the Spectrum. I have tried all the Control options in ZXDS but none work. If I display the ZX Spectrum+ keyboard on the DSi's bottom screen the cursor keys there work fine. This is not even in my program - the 128 welcome menu (Tape Loader, 128 BASIC etc.) has the problem. Is this a bug or am I missing a config option within ZXDS somewhere?

2) The next issue is the speed of loading from tape. Whilst it is "fun" (novalty soon wears off ;)) to see the stripes when loading is there a way to turn this off and use an instance/turbo load method?

I am using ZXDS 0.9.1 BETA 1 - is there a more up to date version?

Is ZXDS the recommended Spectrum emulator for the DSi?

Thank you for your help.

Paddy
Post edited by Paddy Coleman on

Comments

  • edited June 2011
    Just seen there is a ZXDS 0.9.2 BETA 1 - testing this version now.

    [Edit] Nope, same issues are there in this version too. :-(

    Paddy
  • edited June 2011
    I can get around the tape performance using snapshots so that is not so bad.

    Paddy
  • edited June 2011
    Yes, ZXDS is the ONLY ZX Spectrum emulator you should ever consider using on your DS...











































    Unitl I release SpudDS that is (which won't be soon...)
    I wanna tell you a story 'bout a woman I know...
  • edited June 2011
    All joysticks including cursor keys settings work fine for me but I am using a different NDS and probably a different card to you. The author of the emulator does visit here frequently so he may well answer your questions.

    It is a fantastic emulator, by the way.
  • edited June 2011
    Thanks Chaps - totally agree, ZXDS is very impressive from what I have seen so far. I am using a AceKard 2i if that makes any difference?

    Also noticed that despite it booting up in 128K+ mode in my case it defaults to the 48K keyboard. Is there a way to make the Plus keyboard the default?

    Paddy
  • edited June 2011
    I have an Acekard 2i as well - ZXDS works fine for me so I doubt that is the problem. A lot of it is just finding your way around.

    The cursor keys on a proper zx spectrum are basically pressing two keys at once (I think!) so they are pressing Shift+7 for up for example. I don't think the cursor joystick interface includes the shift keypress this so this is an oddity of the spectrum itself rather than the emulator. One easy way to test is to set the joystick to cursor and try pressing shift on the keyboard while moving the joypad up and down.

    I think tap files do load very quickly. The ones that will take ages to load are probably tzx files. Whilst the author has included support for tzx files they are not an ideal fit for the nds and he has provided a program (not sure where) that lets you convert them to pzx files that his emulator will handle a lot better.

    For most games tho' you are probably better off working with snapshots and tap files.

    Hope this information is okay - sure someone will correct me if it's not - my DS is not getting much use lately. But you are holding the best mobile emulator for the spectrum you could possibly have!
  • edited June 2011
    thingley wrote: »
    The cursor keys on a proper zx spectrum are basically pressing two keys at once (I think!) so they are pressing Shift+7 for up for example. I don't think the cursor joystick interface includes the shift keypress this so this is an oddity of the spectrum itself rather than the emulator. One easy way to test is to set the joystick to cursor and try pressing shift on the keyboard while moving the joypad up and down.

    Hi Thingley,

    I selected Cursor mode and if I press SHIFT on the keyboard the cursor pad then works as expected. Mmm, shame as this does not feel very logical. It is a shame there is not an option to have the shift+key defined together against the pad.

    Many thanks

    Paddy
  • edited June 2011
    thingley wrote: »
    I think tap files do load very quickly. The ones that will take ages to load are probably tzx files. Whilst the author has included support for tzx files they are not an ideal fit for the nds and he has provided a program (not sure where) that lets you convert them to pzx files that his emulator will handle a lot better.

    Yeah the tape performance is not an issue as I will be using snapshots anyway. I suppose I was expecting to be as quick as my PC - unrealistic I suppose.

    I see that the CycloDS iEvolution is now available and supports the enhanced hardware of the DSi:

    http://www.cyclopsds.com/cgi-bin/cyclods/engine.pl?page=products-ievo

    I wonder if there are plans to update ZXDS to take advantage of the extra processing power?

    Many thanks

    Paddy
  • edited June 2011
    I coded around the keypad issue - all works fine now.

    Many thanks for everyone's help.

    Paddy
  • edited June 2011
    1) The "joystick" on the DSi does not emulate the cursor keys on the Spectrum.

    As others have already pointed out, the Cursor joystick button from the Controls screen maps the controls to match the "Cursor Joystick" setting used in games. Which is not the same thing as pressing the cursor keys on 128k keyboard. While this joystick uses the same keys as the cursor keys themselves, it doesn't include the press of the Caps Shift, which the cursor keys also generate. Doing so would actually break how it is supposed to work in the games, too.

    If you would like to use this type of controls to navigate the 128k menu (because I can't think of many other uses - if you were editing basic, you would be using the onscreen keyboard anyway), you have to provide the caps shift keypress yourself. It's easy, though, in default setup caps is mapped to both L and Y buttons, so holding either of these while using the dpad will do.

    On the other hand, I really don't know why you would need to navigate the 128k menu with dpad either - the tape autoload supports both tape loader and USR 0 loading modes without having to deal with the 128k menu at all...

    As for the keyboard, there is currently no way to choose the default one. Personally, I prefer the 48k keyboard shown by default, because it a) IMHO looks nicer, b) has all the keywords listed. I remember I was considering adding the config option for this at one point, but having put the 128k one just one touch of a button away, I decided why bother...
    2) The next issue is the speed of loading from tape. Whilst it is "fun" (novalty soon wears off ;)) to see the stripes when loading is there a way to turn this off and use an instance/turbo load method?

    Well, I am afraid this is about as fast as it gets. Personally, I don't find ~10sec for a 48k game that much, at least I can see the loading screen for a while. And once that's loaded for the first time, it's easy to save a snapshot and use that afterwards.

    It may be annoying if you try a lot of games in a turn and have only fancy turbo loading TZXs available (which may take longer than TAP or plain stock TZXs), but once you actually start some playing and spend less time on loading, it's not really much of an day-to-day issue.

    Patrik
  • edited June 2011
    Hi Patrik,

    Thank you for taking the time to respond in such detail - really appreciate it.
    Patrik Rak wrote: »
    As others have already pointed out, the Cursor joystick button from the Controls screen maps the controls to match the "Cursor Joystick" setting used in games. Which is not the same thing as pressing the cursor keys on 128k keyboard. While this joystick uses the same keys as the cursor keys themselves, it doesn't include the press of the Caps Shift, which the cursor keys also generate. Doing so would actually break how it is supposed to work in the games, too.

    Understood and it makes sense now. I had lost touch with how a real Spectrum works. ;-)
    Patrik Rak wrote: »
    If you would like to use this type of controls to navigate the 128k menu (because I can't think of many other uses - if you were editing basic, you would be using the onscreen keyboard anyway), you have to provide the caps shift keypress yourself. It's easy, though, in default setup caps is mapped to both L and Y buttons, so holding either of these while using the dpad will do.

    On the other hand, I really don't know why you would need to navigate the 128k menu with dpad either - the tape autoload supports both tape loader and USR 0 loading modes without having to deal with the 128k menu at all...

    Sorry, I was just using the 128K menu as an example of the problem. It is not an issue for me personally. I am not using ZXDS to run games (I have never been in to games even back in the 1980s) but a specific application I have been developing in BASin. My expectation is to use the DS as the run time platform for the application. The program has a list that is navigated via the cursor keys and enter (up, down, page left, right and enter to select). It all works fine now as I have amended the code to accept the 128K cursor keys and the cursor key joystick option.
    Patrik Rak wrote: »
    As for the keyboard, there is currently no way to choose the default one. Personally, I prefer the 48k keyboard shown by default, because it a) IMHO looks nicer, b) has all the keywords listed. I remember I was considering adding the config option for this at one point, but having put the 128k one just one touch of a button away, I decided why bother...

    My application is written to use the 128K (makes use of the RAM disk) so for me the Plus keyboard is the better option. Also personally I prefer the look of the Plus keyboard but I realize that is just personal taste. I was hoping that swapping the keyboard bitmaps around would fool ZXDS but alas not. :(

    I was also hoping the was an undocumented CFG option that would allow one to specificy the default keyboard - ah well.
    Patrik Rak wrote: »
    Well, I am afraid this is about as fast as it gets. Personally, I don't find ~10sec for a 48k game that much, at least I can see the loading screen for a while. And once that's loaded for the first time, it's easy to save a snapshot and use that afterwards.

    Agreed and as I said I intend to use snapshots anways so not an issue. The problem is down to my applicaiton design really. My TAP file contains 26 files - the main program plus a mixture of UDG, SCREEN$ and data side files. These are loaded in to memory and transferred to the RAM disk. At runtime the files are swapped in and out of memory as required. With snapshots this is instantaneous so the problem goes away.

    ZXDS is seriously a fantastic piece of software and I became quite emotional when I saw my program running on the wee DSi. In fact I am so impressed that I will probably buy a DSi XL now as my "idea" has been proved to work.

    Many thanks

    Paddy
  • edited June 2011
    My application is written to use the 128K (makes use of the RAM disk) so for me the Plus keyboard is the better option. Also personally I prefer the look of the Plus keyboard but I realize that is just personal taste. I was hoping that swapping the keyboard bitmaps around would fool ZXDS but alas not. :(

    I was also hoping the was an undocumented CFG option that would allow one to specificy the default keyboard - ah well.

    I agree that for lot of typing the 128k keyboard is better, as the letters stand out better, not cluttered with the keywords (that's actually why I didn't even attempt to add any keywords to the 128k keyboard graphics, even if the original has them, to keep it clean). But I thought that one more touch is not such a hassle in such case. :) Well, I can add a config option for that, if it will please someone...
    Agreed and as I said I intend to use snapshots anways so not an issue. The problem is down to my applicaiton design really. My TAP file contains 26 files - the main program plus a mixture of UDG, SCREEN$ and data side files.

    Ah, yeah, lot of files in a TAP can take a long time, as the pilot tone is not sped up as much as the loading itself. OTOH, imagine how long it would take on a real machine... :)

    Patrik
  • edited June 2011
    Hi Patrik,

    Indeed - it would be an insert the cassette go and have lunch and then come back job! :-P

    If you are thinking of adding some additional config options could I ask for:

    * Ability to set the default keyboard image
    * Ability to set the default emulation speed to max

    Thank you.

    [Edit] By the way, "Paddy" is short for Patrick too! :-)

    Paddy
  • edited June 2011
    One other question - can anyone recommend a reseller of AceKard 2i (the 3DS compatible version) in the UK? I have looked at the AceKard web site and I have never heard of any of the suppliers they list. Somewhat concerned about handing over credit card details in this way.

    Many thanks

    Paddy
  • edited June 2011
    Right I have ordered my DSi XL. Handheld Spectrum here I come! :smile:

    Paddy
  • edited June 2011
    Hi, Patrik.

    Perhaps in the next version, you can include other special keys such as the cursor buttons on the redefine buttons screen? And also perhaps one of the built-in configs to already contain cursor keys on the d-pad and space/enter on the A button, something like that.

    Still love ZXDS on my DSLite. Thank you for all the hard work you've put into it.
  • edited June 2011
    Patrik - thanks for your excellent work. Enjoyed it so much I sold my ds and upgraded to a ds xl purely for speccy games. I'd highly recommend it.
  • edited June 2011
    One other question - can anyone recommend a reseller of AceKard 2i (the 3DS compatible version) in the UK? I have looked at the AceKard web site and I have never heard of any of the suppliers they list. Somewhat concerned about handing over credit card details in this way.
  • edited June 2011
    Ah ha - didn't realize that these DS cartridges are now illegal in the UK. :mad:

    Paddy
  • edited June 2011
    Hi Folks,

    I contacted AceKard directly and the recommended that I purchase the 2i from www.holidaycarts.com in Hong Kong. I placed my oder this morning so fingers crossed.

    Hope this helps.

    Paddy
  • edited June 2011
    Ooooh, my DSi XL arrived today from Amazon! Just waiting for my AceKard 2i and Micro SD now.

    The world of portable ZX Spectrum is almost here. :smile:

    Paddy
  • edited June 2011
    Well the DSi XL and my Micro SD card has arrived. Just waiting for my AceKard 2i now.

    Patrik - any chance of a wee update to ZXDS that allows one to specify the following in the CFG file:

    * Ability to set the default keyboard image
    * Ability to set the default emulation speed to max

    Many thanks

    Paddy
  • edited June 2011
    Hi Folks,

    OK, DSi XL has arrived, AceKard 2i has been configured and ZXDS installed. Guess what, I now have a Sinclair Pandora! ;)

    Is this truly is the ultimate Spectrum?

    Well done Patrik, the combination is awesome.

    Many thanks

    Paddy
  • edited July 2011
    Well the DSi XL and my Micro SD card has arrived. Just waiting for my AceKard 2i now.

    Patrik - any chance of a wee update to ZXDS that allows one to specify the following in the CFG file:

    * Ability to set the default keyboard image
    * Ability to set the default emulation speed to max

    Many thanks

    Paddy

    Hi Patrik (and rest),

    OK, I have been playing with ZXDS (love it :smile:) and I have been able to set the default keyboard image as requested above.

    After reading all the README files (I know I should have done that first) it seems you create a ZXDS folder in the root of the Micro SD card. Under there you create a Graphics folder that contains the ZXDS skins information.

    The files for the Graphics folder are copied from ZXDS_092b1 Skins folder. There are two sets of keyboard BMPs called bg_keyboardn.bmp and bg_pressedn.bmp. Where n is 1 for 48K and 2 for 128K. I simply renamed the 48K versions to 3 and copied versions 2 to 1 (if that makes sense).

    Now when I load ZXDS it comes up in 128K mode with the appropriate keyboard!

    Still have not been able to find any setting to set the defauilt speed to maximum though. Probaly need Patrik's help for that.

    Hope this helps.

    Paddy
  • edited July 2011
    Pooh, scratch that. I have just tested and although ZXDS now loads and displays the 128+ keyboard by default it still thinks it is the Spectrum 48K so all the keys are in the wrong place. :cry:

    Ah well, back to needing Patrik's help I guess.

    One step forward... :smile:

    Paddy
  • edited July 2011
    Hi Folks,

    Some more feedback from the world of ZXDS testing. :smile:

    I noticed that there seemed to be some colour blead on my DSi XL so I wrote the following test program to try and narrow it down:
    100 BRIGHT 0
    110 LET c=0
    120 FOR x=0 TO 31
    130 FOR y=0 TO 21
    140 PRINT AT y,x; PAPER c;" "
    150 NEXT y
    160 LET c=c+1
    170 IF c=8 THEN LET c=0
    180 NEXT x
    190 PAUSE 0
    200 LET c=0
    210 FOR y=0 TO 21
    220 FOR x=0 TO 31
    230 PRINT AT y,x; PAPER c;" "
    240 NEXT x
    250 LET c=c+1
    260 IF c=8 THEN LET c=0
    270 NEXT y
    

    The issue shows on the vertical lines where blue joins red - there seems to be what can only be described as a single line of black pixels between them. On the horizontal lines the red and magenta lines seem to overrun the end of the screen by one pixel.

    Now I am no DSi XL expert so I wondered if there was an issue with the screen so I tested the same program (and my application) on my daughter's DSi and 3DS. The results on the DSi were the same so I assume this is either an issue with ZXDS or the DSi screen?

    One point of warning though - the 3DS screen is very different from the DSi. May be the resolution of the top and bottom screens is different as the Spectrum screens seem to be "scaled" and therefore appear "fuzzy". They are still usable but look like a Spectrum on an old TV. :smile:

    One final question. If I go in to the Controls option in ZXDS and select Sinclair II joystick then it works fine. I also click on the Save Keys button expecting this to store my selection for the future - but it does not. Does anyone know what the Save Keys option does then?

    Many thanks

    Paddy
  • edited July 2011
    One final question. If I go in to the Controls option in ZXDS and select Sinclair II joystick then it works fine. I also click on the Save Keys button expecting this to store my selection for the future - but it does not. Does anyone know what the Save Keys option does then?

    Manged to fix this one. Seems I had a rogue ZXDS.CFG file on my MicroSD card. Deleted this and then used the SAVE CONFIG option and ZXDS now remembers my joystick selection.

    Many thanks

    Paddy
  • edited July 2011
    Another question about ZXDS... I notice that if you use maximum speed then the FRAMES counter seems to be updated more than 50 times a second. This becomes clear if you are using FRAMES as a clock as the time races ahead. If you run ZXDS at normal speed then FRAMES remains correct.

    Is this the difference between having a "faster processor" (in emulation sense) but maintaining the 50hz cycle and not?

    Many thanks

    Paddy
  • edited July 2011
    Is this the difference between having a "faster processor" (in emulation sense) but maintaining the 50hz cycle and not?
    Yes, maintaining the 50fps means the emulation is being slowed down to match the speed of a real Spectrum otherwise the shackle are unleashed and allowed to run as fast as possible.

    (You wouldn't believe how hard it is to code an emulator to run over 50fps!!)
    I wanna tell you a story 'bout a woman I know...
  • edited July 2011
    karingal wrote: »
    Yes, maintaining the 50fps means the emulation is being slowed down to match the speed of a real Spectrum otherwise the shackle are unleashed and allowed to run as fast as possible.

    (You wouldn't believe how hard it is to code an emulator to run over 50fps!!)

    Hi Karningal,

    So in ZXSpin there are two options:

    Z80 CPU speed
    Emulation speed

    where you can give yourself a faster processor but maintain the 50Hz timing - correct. The "faster" option in ZXDS is basically equivalent to just the emulation speed setting then?

    Many thanks

    Paddy
Sign In or Register to comment.