I've managed to get the upload program working once more with the x64 driver, however I now need to press F8 whenever the machine is booting up so I can disable driver signing. Stupid stupid stupid vista! I wonder how much it costs to sign a driver. This is a VERY popular driver, so it may be possible for everyone to club together and pay for it.
There used to be a work around where you could just switch it off, but Microsoft in their infinite wisdom disabled it. Its thing like this which will drive folk to other operating systems. (Course... MAC doesn't HAVE a parallel port...)
I think one of the things on my to-do list should be a simple USB to parallel wire. Now I know there ARE some, but I'd love to have a proper one that acts EXACTLY like a parallel port and does all the crap for you. I imagine this would sell pretty well, particually if it could get signed properly. Oh well... another one to add to the list.
Still, for now its working and means I can now test Plus4 code again. The original uploader hasn't changed, but I now have a new DLL and SYS file that I use on VISTA.
So what else is new; well I've added basic SID support to Minus4j but its a bit pooh to say the least. The lack of filter support really sucks and since most music/fx uses them, they just dont sound right at all.Attila has kindly sent me the core of the SID emulator from YAPE and I'll see if I can wedge that in. It's very much like trying to put a square peg in a round whole though as YAPE and Minus4j are not only very different langauges, but have very different design philosophies. Still, its worth a go! With any luck I'll get it added and we can get some good sounds playing in demos.
Speaking of demos, I noticed that many appear to over run their rasters, and I think I've finally figured out why. I dont think Minus4j (or Minus4w) are letting them have a whole scanline. Basically the "newline" function is being called at the start/end of a scanline (HBLANK) but thats not where the timing is working from. The horizontal dot clock is being reset by the newline function and losing clock ticks. This means you dont get all your processing cycles, and would also be the cause of my inability to load tapes. Tape loading is in fact VERY easy (once you have a good sample), all you do is set a bit on/off as it plays, and at the right time. But if the CPU timing is out, it'll never work - explains a few things.
It may however be a nightmare to fix, so I'll have to look into it. It would be great to be able to load PRGs, D64s and TAPs into Minus4j, but I'll wait and see how everything else goes. I really really don't want to get sucked wasting all my time on emulators again...I have bigger fish to fry.
EDIT: Oh, and if anyone else does want to use the uploader on Vista64, then let me know and post a ZIP with the new drivers and installation instructions.
Showing posts with label uploader. Show all posts
Showing posts with label uploader. Show all posts
Saturday, November 29, 2008
Thursday, November 27, 2008
A sound idea and Vista kicking you when you're down.
I was fixing some sound issues with Minus4j last night, as I suddenly discovered it was actually pretty broken. If both channels went quite loud and high frequency, it all started to break up - samples too in point of fact. So I spent some time fixing this and its all much nicer, samples sound pretty clean and music in Commando and Monty on the Run are much much nicer.
This then lead me to look at D64 support. I was trying to load TerraNova and it started to work, then didn't. It gets stuck in some odd loop which i think is sample based, but I'm not sure, and I think I have my interrupt flagging wrong. Currently I flag them only when $FF0A is also set, but I believe this is wrong. I think you should always flag them, they just dont kick off an interrupt!
So i thought I'd do some test code on the real machine and see what happens. It was at this point I realised I haven't downloaded anything since I've upgraded (and I use that term losely) to Vista x64. Parallel port access requires a system driver, and under x64 all system drivers must be x64 based. This means my great little 32bit dll which gives me raw access to a parallel port under windows, now no longer works, which in turn means I can no longer download directly to the plus4 - OR carry on with my debugger. FEK!
So I've managed to find a 64bit version of the driver, but its just not working, and now I dont know if thats because the driver isn't working, isn't being found or simply because the parallel port on my machine is set up wrongly. FEK.
So tonight I hope to fix this and test out the interrupt registers a bit more. At the same time, I've started adding D64 support via the Commodore 1551 parallel port registers. This is why turbo loaders dont work on Minus4 as I assume its one of these devices. I used to just intercept calls to the LOAD command, but this is a little better. Anyway, I hope to get basic D64 support in soon although with all the disk turbo loaders around I'm not sure how much use it'll be.
As a little aside.. I was looking at the Minus4sim I started years back. This was a cycle perfect version of Minus4, but I got bored with emulation and mechanic was a little too messy for my likeing. However... C# has some really, REALLY cool constructs for pausing code mid execution, and i think if I ported it over to C#, it would all become VERY elegent and simple to follow. No longer would you have to hold partial states etc. You just pause and resume. So I may play with this at a later date as it would give some very simple code but yield some amazing results. It would also allow me to finally do a fully emulated 1541, which I've been meaning to do for years.
Still mustn't get too side tracked. I have to finish up with Minus4j, then the debugger, then back on to Xeo3.
This then lead me to look at D64 support. I was trying to load TerraNova and it started to work, then didn't. It gets stuck in some odd loop which i think is sample based, but I'm not sure, and I think I have my interrupt flagging wrong. Currently I flag them only when $FF0A is also set, but I believe this is wrong. I think you should always flag them, they just dont kick off an interrupt!
So i thought I'd do some test code on the real machine and see what happens. It was at this point I realised I haven't downloaded anything since I've upgraded (and I use that term losely) to Vista x64. Parallel port access requires a system driver, and under x64 all system drivers must be x64 based. This means my great little 32bit dll which gives me raw access to a parallel port under windows, now no longer works, which in turn means I can no longer download directly to the plus4 - OR carry on with my debugger. FEK!
So I've managed to find a 64bit version of the driver, but its just not working, and now I dont know if thats because the driver isn't working, isn't being found or simply because the parallel port on my machine is set up wrongly. FEK.
So tonight I hope to fix this and test out the interrupt registers a bit more. At the same time, I've started adding D64 support via the Commodore 1551 parallel port registers. This is why turbo loaders dont work on Minus4 as I assume its one of these devices. I used to just intercept calls to the LOAD command, but this is a little better. Anyway, I hope to get basic D64 support in soon although with all the disk turbo loaders around I'm not sure how much use it'll be.
As a little aside.. I was looking at the Minus4sim I started years back. This was a cycle perfect version of Minus4, but I got bored with emulation and mechanic was a little too messy for my likeing. However... C# has some really, REALLY cool constructs for pausing code mid execution, and i think if I ported it over to C#, it would all become VERY elegent and simple to follow. No longer would you have to hold partial states etc. You just pause and resume. So I may play with this at a later date as it would give some very simple code but yield some amazing results. It would also allow me to finally do a fully emulated 1541, which I've been meaning to do for years.
Still mustn't get too side tracked. I have to finish up with Minus4j, then the debugger, then back on to Xeo3.
Subscribe to:
Posts (Atom)