The Minus/4 Emulator V1.2.2! Copyright Mike Dailly 1996,97 E-Mail me on mike@scotch.demon.co.uk The latest relase can be found at www.scotch.demon.co.uk DISCLIAMER THE BORING BIT! THIS PRODUCT IS FREE. AND AS SUCH I ACCEPT NO RESPONSIBILITY FOR ANY DAMAGE DONE BY THIS PRODUCT. IF YOU USE IT, ITS YOUR FAULT. IF SOMETHING HAPPENS COZ YOU USED IT, ITS YOUR FAULT. IF THE EARTH EXPLODES WHILE YOU USE IT, IT'S YOUR FAULT. IF I HAVE A BAD DAY COZ YOU USED IT. YOU GUESSED IT - ITS YOU'R FAULT! ALL IN ALL - YOU USE IT AT YOUR OWN RISK! Whats NEW now!! --------------- For V1.2.2 - Even fewer fixes! ---------- 1) Just figured out what was wrong with the joystick. Controlling BOTH joysticks WAS causing problems. F5 is now "enable joystick 1" (I think..?) F6 is now "enable joystick 2" - same keys. Keyboard and joystick control now 100% (I think ) "Finders Keepers" now works on both joystick and keyboard. For V1.2.1 - A few minor fixes. ---------- 1) Fixed up the keyboard and joystick a bit. Thanks to "Tibor Biczo" for the info. The joystick is still not 100% but its much closer. the keyboard should now work perfectly. "Elite" which didn't quite work, now does. 2) Added few more undocumented instructions. AFL Boulder Dash now works. 3) Raster Cycles now set to 57 and 109. This will change when I finaly do a dynamic system that'll handle for the plus/4's "cycle pinching" 4) Sound stuff removed to avoid problems - just now. Will be done correctly one day. 5) Thanks for all the help everyones been giving after reading the source. Its a great help. For V1.2 --------- 1) Added jostick 2. Up/Down/Left/Right and Space will now control BOTH joysticks at the same time. I will add a redefine keys option later, and allow each to be on and off. Make sure "NUMLOCK" is off. 2) F12 now resets correctly. It does not automaticaly page in the system ROMS. If you press SHIFT-F12 it will reset back to basic. (in other words... F12 resets, Shift-F12 resets back to basic). 3) Added SNAP shot. Press F9 while in emulation mode(not debug) and a test.fre file will be saved. File must be called .FRE to reload. If anyone wants the format of this, Ill add it in to the docs. I did think it'd be neat to do a REAL plus/4 compressor etc, so it would all reload on an actual plus 4! perhaps later... I'll add a proper file name requester later.. 5) I've changed the .D64 loader menu to only reprint when a key is pressed. This was causeing problems in windows and some slow video cards. Sorry theres not more. But I've not have much time to do stuff. Even this version has been sitting around for a while. For V1.1 --------- 1) It now doesn't crash in windows! The last one featured a new memory system with a fudge I thought would "NEVER" cause any problems... unless you had 2 GIGS of memory! :-) however, windows being windows... it messed it all up! This is now fixed. It still crashes in the debugger if you trace for a while at high speed. (not in DOS) 2) Timer1 is now 100% in SLOW and FAST mode! In FAST mode it will add exactly HALF the cycles. (including fractions) This fixes the delay problems in the last version. Many demos now work correctly. 3) I have settled on 57 and 114 cycles for fast and slow mode. This fixes EXACTLY a few demos that seem to use timer loops. It also matches a text file I have on the speed on the system. "Genetic Fault" Now doesn't work in the Plasma section. I have A few Ideas about this.. and some other "glitching" could be due to the delay before drawing the screen... 4) Added "ASO" instruction. ACE2 (version I have) now decompresses and runs correctly. 5) Its getting a bit slower on Pentium machines... but faster for 486 ones... Some feed back on this would help folks! :-) 6) errr...Im sure I did something else For V1.0 --------- 1) Fixed a bug in the keyboard routine. the "?" key now works... stupid bug...sorry. :-) 2) The emulator now runs at almost Plus/4 speed on my P100!!! In mode 13 it runs faster! cool! The CPU emulation is still in "C" - but after doing some in assembler, it seems that it kills the cache and slows it down?!?! So I'll prob leave it in C. Its far easier to maintain anyway! 3) This isn't "IN" as such, just lots of ground work... I have decided to "try" and get hardware 1541 emulation This means I will emulate the full ROM/CPU of the drive, along with the hardware GCR reader. This will still work with .D64 files. (I'll just translate this into GCR data) This will take a LONG time to implement. BUT it should work with EVERY loader!!! I also don't know how fast it'll be as I'll be emulating 2 machines at once! 4) The timer is now 100% in 1Mhz mode. It even runs the demo I thought it never would! :-) In 1.78Mhz mode...I don't know how I'll work this one! It may end up close...but not exact... Thanks to everyone that e-mailed me about releasing small versions... You all want it so! Here you go! This version is mostly a speed up... But theres still a LONG way to go. The CPU is okay, but the screen render is CRAP!!! Thats next I think! :-) I may be helping on the VICE project soon as well. This is a very cool project to emulate ALL C= machines in one project. It already has C64,Vic and Pet! AND It does hardware 1541 emulation! (very nice too!) I have been asked to help and add Plus/4 support - which I'm going to try! It runs mostly on Unix (linux, Irix etc) but they are doing an MS-DOS port as well.. As a result... development may slow down on THIS version, as I try and do that one... And in the end, this one may STOP altogether! (If the other one is better, they why carry this on?) The other version is also doing SID emulation.. Any worries, questions.. e-mail me! For V0.9 --------- 1) I'm trying a new approch to the keyboard. (again). But as I still don't know how it all works, Im still playing. This "seems" to be better.. but still not right as games like Elite STILL don't respond to keypresses.. 2) I've switched off VBLANK syncing by default. This speeds things up a bit. If you want to use the 360x240 mode, your video card MAY insist on VBLANK syncing.. use the -v command line option. 3) Thanks to Luca/FIRE for pointing me to a NON standard opcode program. I have now added quite a few non-standard opcodes. Many more decrunchers now work fine! Theres still a few left, but some may never work as they EOR with the timer!!?!??!? I may get it, but no time soon.. 4) Added register $ff1e correctly. This solves MANY raster glitches. $ff1f has not been added yet... 5) Timers now work. $ff00 and $ff01 work at a resonable speed. But not 100% correct. Its right for the single clock mode only.. Timer 1 will also reload correctly. Timers 2 and 3 just count down and set IRQ bits 3 and 4. they DON'T generate IRQ's just yet. Anyone have a game/demo that uses this? Timer 0 DOES generate IRQ's. 6) Added ECM mode. "Genetic Faulty" now seems to work correctly. This is the ONLY thing I found that uses ECM! anyone got any others?? 7) Added the ECM+MCM screen black out. Again "Genetic Faulty" uses this. 8) Added a VIEW current frame in debugger, Lets you see what the screen is like so far. This is updated every scan line so you can watch each raster being drawn. Quite cool. 9) Added a picture saver! It saves .BMP's Sorry its not something like .PCX or .GIF, but BMP files are just SO simple to write, no compression, no problem. you can use Paint Shop Pro or something to convert it. 10) Changed and added some keys in the debugger. See below for a complete list. Any requests? Anything more you'd like to see? FULL break points? anything? Im not promising, but you never know! 11) Added this history.txt file. It was getting a bit big! I also moved the other file around a bit. On the whole, its getting quite good now. It seems to be able to run 95% of stuff now. I did speed it up quite a bit, but then I added a whole load of stuff, so its back to where it was... typical! :-) Sorry for all these "little" releases. But Im just doing this when I've got time! V0.7 took SOOO long to come out that I don't want that to happen again. So, whenever I add something, I'll release it. If you don't think this is a good idea, e-mail me. I don't know unless you tell me!!! For V0.8 -------- 1) Fixed a NASTY bug in the debugger (of all things:-) Was crashing the machine. Sorry! 2) remapped GO key to F8 in the debugger. 3) Added a Loader. Now when you press F10, you are presented with a list of files to load! 4) The loader can now load .D64 type files, and will list the disk directory when selected. Unless there is a real need, I don't think I'll bother with .T64 files... who uses them? 5) Added a bit of a delay to the raster IRQ's. This was causing some glitching in games like "The Hobbit" and cool demos like "Genetic Faulty". I don't actually know the delay the Plus/4 has on interupts, so I've guessed a little. It doesn't fix EVERY glitch... but its much better. 6) The command line has changed. You no longer specify the GAME on the command line, but the directory where your games are. I'll add a directory system in later. This relase is really just a fix for the debugger bug. It was quite nasty, but I wanted you to have another reason to get the latest version, so I added some other bits. Besides, thanks to "Marco Polo" I now a CD FULL of Plus/4 .D64 files!!! For V0.7 -------- 1) The biggest change is that I have added MODE-X support. This allows for a strange mode of 360x240. It also gives me a 20 pixel area each side to draw the border. It even allows for the effects of text in the border (which now seems to work on some intros!). 2) The joystick can now be used by pressing F5(on/off). The keys are up,down,left,right and space. However theres still some real problems with this... 3) I have added some processor timings, meaning that its about the same number of cycles a frame, it also helps some demos work better. 4) And a bad one.. Its a bit slower now because of the Mode-X screen flip. This must be synced with the VBLANK, and it was free running before.. so its a bit slower...sorry. you CAN switch this off if you don't care about the borders. 5) Command line options! Not much just now. /? for a list, and -x to disable mode-x The first command line option MUSt be a game! then the options 6) Y smooth scrolling. At last. This is more or less in. I never used this when writing stuff on the Plus/4 myself, so I don't know exactly how it works. The basic screen and split screen works, but You get garbage in the middle on split screen games. Anyone know how this works? 7) Keyboard routine has be rewriten. BUT! My keyboard routine sucks! So you cant press RIGHT-SHIFT then the "/?" key! as the "/?" key wipes the shift?!?!? anyone know how to fix this? Im also having problems with games like Elite and Mercenry and key presses. They don't work! Well, elite sort of does...at the start? Any clues?? Caps-Lock is now Run/Stop BTW 8) F12 now acts as the soft reset (so F12+CAPSLOCK will give the monitor) Does NOT wipe memory! Sorry theres not more in. Im finding it hard to find time to do more. For V0.6 -------- 1) Added "DOS4GW.EXE" to the archive... sorry chaps! 2) Added screen "BLANKED" mode ($ff06, bit 4) 3) Register $ff1c and $ff1d are now, read write. (I hope!) For V0.5 -------- 1) Most games now seem to work! whaahay! Still can't get the processor speed quite right (cycles per scan line). Some require about 61, and others about 100! Ah well, I'll work it out.. 2) The packer problem in V0.4 turned out to be corrupted files! great! the best kind of problem! 3) I've added scrolling in X, but not Y yet... 4) Fixed up small problems in the raster system... I still seem to get a glitch in graphic mode 2 (BASIC's split screen graphics). There shouldn't be a black line there... Mmmm.. 5) Fixed some crashes, but it still happens now and then... For V0.4 -------- 1) Well, I've added the bit maps modes. Hires, and Hi-res multi colour! What this means, is games like 3DPOOL now work! 2) I've also added a command line option to allow you to load any game (.PRG file) you want! Most still dont work, so don't get too excited! but the problems seem to be with the packers, and not the games... I'm still working hard on it, so don't worry! 3) working games so far... (that de-crunch that is..) All basic programs seem to work... Finders keepers (default game) Trailblazer (the file called "a" in the .ZIP??) Airwolf - except the scrolling....(Next?) 3DPool! if you find any more, let me know!