home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 1999 June
/
PCWorld_1999-06_cd.bin
/
software
/
temacd
/
Multi
/
_SETUP.1
/
MTM.TXT
< prev
next >
Wrap
Text File
|
1998-06-16
|
45KB
|
902 lines
+----------------------------------------------------------------------------+
| Copyright |
+----------------------------------------------------------------------------+
MTMW is Freeware, which means you can give the program to friends and
acquaintances for *free*. Archive maintainers are allowed to include MTMW in
their program collections for "downloading". Shareware distributors are
allowed to distribute MTMW, if they only take a small fee for copying.
Compared to Public Domain, Freeware does not mean that it is "free" and you
may do anything with it. I still retain the copyright.
+----------------------------------------------------------------------------+
| Disclaimer |
+----------------------------------------------------------------------------+
MTMW is supplied as is. The author disclaims all warranties, expressed or
implied, including, without limitation, the warranties of merchantability and
of fitness for any purpose. The author assumes no liability for damages,
direct or consequential, which may result from the use of MTMW.
+----------------------------------------------------------------------------+
| Version 1.30b (16/Jun/98) |
+----------------------------------------------------------------------------+
---+++*** WIN95 GUI ***+++---
1. Added the other Snapshot types to the standard requester.
2. Forgot to load/save last jupiter ace snapshot name/from to the '.INI'.
3. Full-screen windows frames when using menus are now sized correctly.
4. Snapshot name on the Caption line is now updated properly.
5. Fixed the allways on top problem when returning from full-screen mode.
DirectDraw in all its wisdom sets the window into HWND_TOPMOST mode
and does not revert it on return from fullscreen.
6. Fixed tape hardware info property sheet and updated INI file to match.
Any available HWINFO blocks from a TZX or CDT file are now displayed.
7. Changed the DISC menu completely. re-adding the 'turn disc over' and
adding in a facility to eject the disk 'Close disk'.
8. Updated the FILE->Open cartridge option to work correctly with a CPC+.
9. If full-screen was activated and a primary surface with backbuffer
could not be allocated then all dest blits would be 640x480 rather
than the required size. Sorted.
10. Started introducting Win95 Direct Draw in a window for far better
speeds in windowed mode.
11. Bl00dy hell that was hard. I've just went through rewritting every
single draw routine to handle direct draw in a window. Its now a lot
better and far faster in windowed mode. What a pain in the arse that
was. Oh well its done now.
---+++*** SPECTRUM RANGE ***+++---
1. Verified undocumented display modes on the TC2068. Yup my initial
guesses look spot on.
Outs to port 255 can be decoded as follows.
Bit 0 (==1) sets ALTDFILE (alternate display file)
Bit 1 (==2) sets EXTCOLOR (8*res attributes)
Bit 2 (==4) sets HIRES (hires 512x192 mode)
Using the standard Spectrum address decoding you get 2 streams.
Stream 1 is the bitplane data
Stream 2 is the attribute data
When HIRES is enabled 'Stream 2' is no longer used for colour but
for the next 8 pixels of display data.
Using a 'C' switch case statement you can adjust the addresses of
Streams 1 and 2 as follows:-
Switch(Last_ff&(ALTDFILE|EXTCOLOR))
{
case 0:
break;
case ALTDFILE:
stream1|=0x2000;
stream2|=0x2000;
break;
case EXTCOLOR:
stream2=stream1|0x2000;
break;
case EXTCOLOR|ALTDFILE:
stream1|=0x2000;
stream2=stream1;
break;
}
Now you can decide which routine to use to display hi or lores data
based on the HIRES flag.
2. Changed flash handler to be based on the refresh rate. (50/60)
3. Changed flash to occur at 2*refresh rate.
4. Adjusted output volumes for EAR output/EAR input/MIC so all 3 are
audible. Besides there was a bug involving an 'OR' instead of an 'AND'
5. Adjusted contention emulation. Should be a bit faster when contended
section of screen is active. Also makes introducing the real system
for memory contention.
6. Adjust '.SP' snapshot loading to handle old and new '.SP' format
snapshots.
7. Added support for '.ZX' format snapshots as used in the KGB emulator.
8. Added support for '.ACH' format snapshots as used in the !Speccy
emulator on the Archimedes.
9. Added support for '.PRG' format snapshots as used in the Specem.
10. Added support for '.SNX' format snapshots as used in the Specci.
11. Ooooops. Quite a few snapshot formats did not set up the 'R' register
High bit backup and as such anything apart from Z80 or SNA files that
required the High bit setup may have had problems.
12. Updated audio mixing to same standard as the CPC core which now gives
a far better mix on TAPE I/O and Sample type replays.
13. Memory contention for NTSC machines was being set at the wrong period
and so would not have been any where near correct.
---+++*** TZX ***+++---
1. Added support for Warajevo 2.0 '.TAP' format files.
2. Added support for '.VOC' format tapes.
---+++*** AMSTRAD CPC RANGE ***+++---
1. Changed operation of audio mixer quite radically. Audio and samples
should be a lot crisper now.
2. Added an extra translation table in for the PLUS sprites that may help
with their performance.
3. Changed audio yet again. Hopefully I'm now actually happy with the way
it works. It should be a bit faster also.
4. Removed old audio rigs which may have caused problems if you set bit 4
in PPI port B from the INI. It didn't remember about 50/60hz option.
5. Updated the PLUS mode 2 interrupts, hopefully this should allow
Mr. Cadley to continue on his voyage into beyond.
6. Ooops somewhere along the way I managed to cock up the CPC memsize
setting which meant your virtual CPC would allways have 576K. Now
well and trully squashed (for the n'th time).
7. Oh dear, whilst investigating the MEMSIZE problem I noticed a memclear
before the size section had been initialised. Now rectified.
8. Fixed PLUS asic sprites incorrectly clipping on the right hand side of
the screen. Well I tell a lie, after hours pouring over the clipper
I discovered that the actual plot code sometimes plotted an extra
pixel and that the clipper had been cool all along.
9. Fixed PLUS asic sprites in HIGH and MEDIUM rendering accuracy modes.
10. Fixed ASIC UNLOCK SEQUENCE, caused DEMO+ and a lot of other plus
software to not unlock and therefore crash. Demo+ still crashes but
it gets into the demo first.
11. When ASIC was LOCKED/UNLOCKED or advanced paging control paged
ASICRAM in it didn't switch to memwrite checking straight away and
some ASIC writes could (and did) get missed. Now sorted and fixes
some sprites being left behind on FLUFF and Switchblade. This also
fixes a lot of problems with other PLUS programs.
12. Replaced the CPC PLUS multiple cart blocks definition in the INI file
with single 'C'PC 'P'LUS 'R'OM (.CPR) file entry for 464+ and 6128+.
As long as:-
cpc_464_plus_cart="??????.cpr"
cpc_6128_plus_cart="??????.cpr"
points to a valid RIFF format .CPR rom file then it will autoboot.
This format has been produced in association with the other PLUS
emulator developer to ensure a consistant format.
13. Updated the handling of the DMA control register in the ASIC for
indicating interrupt source. FLUFF now has coloured bars in the
backgound of the screen and WOS.CPR actually runs through the first
event.
14. Video and audio interrupts could occur up to 64us late. All ints
should now be signalled as soon as needed.
15. Removed high nibble on ASIC Sprite data writes to conform to Mr.
Lawsons Unlock test code.
16. Improved performance and compliance of palette changes. Changes make
direct draw in a window easier, out's that write to the palette and
another device will function correctly and its all faster.
17. Adjusted positioning of the code for detecting left/right border
colours and their translations into the destination format.
---+++*** JUPITER ACE RANGE ***+++---
1. Emulation was failing to use the memory setting supplied in the '.INI'
file for amount of hardware memory to allocate. It was allways 49k.
2. Added support for Paul Robson's '.ACE' format snapshots.
3. Updated audio mixing to same standard as the CPC core which now gives
a far better mix on TAPE I/O and Sample type replays.
---+++*** ZX80/ZX81 RANGE ***+++---
1. Updated audio mixing to same standard as the CPC core which now gives
a far better mix on TAPE I/O and Sample type replays.
+----------------------------------------------------------------------------+
| Version 1.29a (24/Feb/98) |
+----------------------------------------------------------------------------+
---+++*** AMSTRAD CPC RANGE ***+++---
1. Yet more GA int fiddling (almost looks right).
2. ASIC Sprites back in. (Very crap code so its a bit slow at the mo).
3. ASIC Soft scroll horizontal (almost right now).
4. Improved the speed of the horizontal stages routine.
5. Added in the direct_memoryread and write to shave a few more cycles
of the emulation.
6. Added some decent ASIC sprite code. Asic sprites now pretty damned
fast if I say so myself.
7. Fiddled with the GA a bit more.
8. Sliced another cycle or so from the video line decoder.
9. INI file settings for the memory size on each machine did not
allways get read correctly and as a result the memory size was not
a stable quantity. Upshot was some programs freaked. Now fixed.
Prodatron Megademo now correctly Id's the amount of RAM available.
10. Improved border handling code. Should now mean that overscan and
non-overscan will be the same speed unless lots of border changes
occur from frame to frame (like loading etc).
11. Started using S4ct z80 instruction processing now that it is
up and running. Should improve Z80 emualtion speed and also give
a better approximation of the NOP cycle that CPC programmers
loved (and still do) so much.
12. Fixed up more S4CT related code, far better Z80 speed now.
13. ---*** AMSTRAD USERS PLEASE READ ***--- I have greatly changed the
way in which the palette translation works. This means that demos
and other programs which change the palette lots of time on each
frame should run a hell of a lot faster. Prehistorik II runing in
medium rendering accuracy on my Cyrix 166 actually runs at full
speed when those strange bars appear on screen. The strange bars
should be a scrolling message generated by changing the palette
many times on each line, but due to my rendering technique it has
allways been unreadable (and probably will until 300Mhz PC's come
down to $19.95 or so I.E. a long time away). But as I say it
should be a hell of a lot faster on DEMOS and high-colour change
screens.
14. True mode 2 in medium/high rendering accuracy. I was going to say
that this makes CPM usable but that would be a contradiction in
terms, so lets just say it makes it readable.
15. Improved palette translation. In general reducing the actual
table generation by between 10-30%. Also additional checks for
display status have improved this section. At long last MTMW now
runs the complete startup section of Voyage93 at full speed on my
Cyrix166 in low rendering accuracy mode.
16. Readjusted S4CT POP instructions to 3 NOP cycles. Kevs doc says 4
and 2 other docs disagree. I'm not sure which is right but the actual
M-cycles are 4,3,3 which rounded gives 12 /4t per nop = 3 ??????
17. Yet another re-write of the display routines to avoid horribleness
that had crept in over time. Should save a small amount of time also.
---+++*** PPI8255 ***+++---
1. PPI_init now sets the control port to 0x9B as specified in the reset
state of the Harris semiconductor specification.
---+++*** SPECTRUM RANGE ***+++---
1. Added in the direct_memoryread and write to shave a few more cycles
of the emulation.
2. Improved the main cpu control loop quite a bit, should be a lot
faster than the previous loop.
3. Removed some test code which I'd accidentaly left in the last version
I sent out.
4. More general speed improvements, on my 166 in full screen mode it
spends about 60% or the time waiting for audio-sync.
5. Improved border handling code. Should now mean that overscan and
non-overscan will be the same speed unless lots of border changes
occur from frame to frame (like loading etc).
6. Removed redundant buffers to lower memory overhead.
7. Fixed TS/TC2068 hi-lores translation ready for real hi-res and
TV style modes.
8. Fixed TS/TC2068 refresh to 60Hz rather than 50 with 224 t-states per
line and 260 lines per refresh.
9. Updated the ULA display routines to allow for all rendering levels.
10. Added INI settings for dock rom. You should now just be able to
supply the dock rom file(s) and of you go.
11. Ooops the memory paging wasn't quite using the dock info correctly.
That has now been sorted (I think) I don't have any DOCKROM's to
try it out on so its a bit of guesswork really.
12. Hires rendering was craping over some memory. Now fixed.
---+++*** WIN95 GUI ***+++---
1. Changed the format of the rom description and colour definition in
the INI file to make it a little bit smaller, neater, easier to
understand and change.
2. Changes to the redraw borders code.
3. Added in a detect for active version of directX and if it is less
than 5 then strongly advise the user to upgrade at the earliest
possible chance.
4. Pre-DirectX 3 users will now be unable to start MTMW to ensure
bug reports are generally caused by MTMW rather than an old version
of DirectX.
5. Complete re-write of the internal display interface code. This was
required to facilitate different levels of accuracy on the rendering
of the emulated machines. Now allows for scanline and hi-res modes.
6. Added the Rendering accuracy option under the screen line of the
main bar.
7. Changed the palette start for 8 bit mode to avoid some clashes with
some Win95 requesters.
8. OOOOPS palette entries failed to be swapped has caused invalid menu
colours in full-screen mode for a while now, Tis fixed.
9. Fixed the requesters again so if the screen is in FULL-SCREEN mode
and a requester is opened and the screen <512x384 then it drops
back to windowed mode for the duration of the requester.
10. Sound ON/OFF now actually functioning as per request.
11. If you select the mode that is currently active it no longer causes
the emulated machine to reset.
---+++*** JUPITER ACE RANGE ***+++---
1. Prepared the main core files for the jupiter ace, should have most
of it up and running quite quickly thanks to the help of
Mr. Paul Robson (author of ACE32).
2. Patched the TAP->TZX translation to add the filenames correctly to
the tape menu. Jupiter ACE file headers are somewhat different.
3. Fixed screen redraw at it was displaying lines before 0.
4. Current tape now stored/restored in INI file.
5. Mirrored memory 2000-23ff at 2400-27ff as the tape routines read
the filename from one but the OS writes it to the other.
6. Mirrored memory 2800-2bff at 2C00-2Fff as TURTLE.TAP writes to one
to define the turtle characters, however the OS writes it's charset
to the other.
7. Remapped keyboard rather than using incorrect spectrum keys.
Hell who wants to press X to get Z and M to get N, never mind
pressing Z to get Symbol shift.
8. Improved border handling on overscan mode.
9. Converted line rendering to ASM to increase speed.
10. Updated the display routines to allow for all rendering levels.
---+++*** Z80 ***+++---
1. Adjusted operation of the JR cc,d to allways read the next PC byte,
this should ensure closer emulation of the cpu contention.
2. One dummy read and right page is now used one all the cpu's rather
the a read and write page per machine. Lowers memory overhead.
3. Ensured all Z80 and main ASM functions are now aligned on 32 byte
boundaries. I've been told this can help the cache a lot.
4. Codegen automatically now removes duplicate routines.
5. Started adding in the stretched 4 t-state handling for better and
faster CPC Z80 emulation.
6. Adjusted t-states for INT 0/1/2 and NMI to be correct.
7. Completed s4ct handling.
8. All machines can now be in the z80 loop for >1 instruction thanks
to the correct s4ct handling, as a result better performance.
9. Having the machines in the z80 loop for >1 showed up a register
corruption that may have been causing spurious crashes. Now
well and trully fixed.
10. Prefix codes were allways using the NO_MEMORY_CHECK version of the
READ_B. This would have caused all prefix codes to be to quick if
running in contended RAM. Now sorted (well ard).
11. Fixed some incorrect NOP timings for POP's, RST's and a few others.
12. Fixed incorrect function jump tables for S4CT handlers.
---+++*** TZX ***+++---
1. Rewrote CPU time slice interface to remove a huge problem causing
the actual tape signal only to have the same approximate resolution
as the t-states per scan line. TZX/CDT files should be a hell of a
lot more reliable now on all platforms.
2. Fixed a bug in the pause block where if the pause was 0 it would
continue on fine, otherwise it would pause until user unpaused it.
Got the compare the wrong way around.
---+++*** AY-38912 ***+++---
1. The Hardware enveloping was bust. Tunes now sound a lot funkier,
things like Prehistorik II, Prodatron Megademo ETC now actually
have the proper sounding digital base.
2. Changed volume to be LOG rather than linear to sound more like
the original chip. It gives it a greater ambience and volume.
3. Ooops fucked up the second line of the envelope data, now fixed.
Funny how you spot these things when your explaining it to someone
else. Tah JS.
4. Expanded a macro slightly to avoid secondary memory reads.
5. Fixed initial rate from 44010 to 44100 (helped on some systems).
---+++*** ENTERPRISE ***+++---
1. Initial slow and dodgy emulation added.
2. Initial screen functions (god they are slow).
3. Initial support for the EXDOS rom and its IO ports.
4. Fixed initial setting for port 0xb4 to 0x30 to stimulate interrupts.
---+++*** ZX80/ZX81 RANGE ***+++---
1. Converted line rendering to ASM to increase speed.
2. Improved border handling code. Should now mean that overscan and
non-overscan will be the same speed.
3. Updated the display routines to allow for all rendering levels.
+----------------------------------------------------------------------------+
| Version 1.28a (29/Oct/97) |
+----------------------------------------------------------------------------+
---+++*** AMSTRAD CPC RANGE ***+++---
1. Started yet another re-write of the CRTC, looking better this time.
2. Prehistorik II runs fine with the new CRTC but its still not right.
3. Changed interrupt serving.
4. Fixed plus palette.
5. Fixed plus DCSR.
6. Burning rubber works mostly, as does prehistorik almost.
7. Changed IRQ handler again.
8. Burning rubber no longer works but fluff runs and prehistorik
plays its DMA music.
9. Oooops fixed border clear on plus. (wasn't using right colour).
10. Loads more GA interrupt fixes, JSW now splits properly and
Mission genocide works. Burning rubber now also sync's properly.
11. Re-enabled display of CRTC Vertical adjust period. Genocide and
prehistorik look nicer at bottom of splits now.
12. Massively speeded up the colour translation table building, this
will help on demos with lots of copper like effects.
13. Implemented a secondary SC counter for the ASIC splits.
14. Meddled with my GA again.
15. Major re-write of PPI. Starglider and firelord now function without
any kludges. Firelord uses SET/RESET bit n of Port C data.
Starglider required correct reads of port C.
16. Amstrad TZX files no longer pause in between blocks for 2 secs. This
was fixed by the correct port C read on the PPI. The OS allways
thought the solenoid was of so waited for 2 sec's till it was up to
speed.
17. Fixed PPI hard wired links.
18. Added in user selection of GATE ARRAY type for each machine via the
INI file. CRTC types 0-5 currently defined.
19. Something I've done has broke Cauldron III again. I'll investigate.
20. Changed GA interrupt inhibit handling again.
21. Slight fiddle with the ROM again.
---+++*** AY-38912 ***+++---
1. Ay now correctly handles the BC1/BC2 and BDIR signal into and out of
its chip. Allows amstrad funkiness to occur with the AY and PPI.
---+++*** SPECTRUM RANGE ***+++---
1. Oooops SLT files may have had slight (understatement or what)
problems loading. This should now be fixed.
2. Wow LLT also now working (or it looks like it).
3. TAP/BLK files are now internally converted to TZX files. Yes I
know what you're all going to say 'But isn't that slower at loading'.
Yes but I intend to put in a feature to allow you to fastload STD
datablocks under TZX.
4. Doh. In fixing the TAP/BLK file stuff I slightly upset the TZX/CDT
stuff. Now sorted and no-one will ever know :)
5. Changed TAP section identification to use the actual header name.
---+++*** WIN95 GUI ***+++---
1. TZX/CDT tape files now have a properties sheet for all of thier info.
Authoring info, instructions, hardware specification.
2. TZX/CDT 'group starts' are now listed with the 'text description'
blocks as valid points to rewind/fast forward to.
3. TZX/CDT message blocks are now actually interpreted.
4. The 'PAUSE' key now pauses/unpauses an active tape file.
5. Reworked the TZX handler slightly, better comments and structures.
6. Changed audio handler slightly.
---+++*** ZX80/ZX81 RANGE ***+++---
1. Have actually been sent some decent documentation so I am now starting
to progress with the STD video display circuitry emulation.
Many thanks to Mr. W. Rigter.
2. Yes,yes,yes. Thanks to that wonderfull document, 5 pots of coffee and
8 paracetemols I now have a ZX81 running and looking good.
3. Patched the tape output port to the sound mixer.
4. Patched the tape input port to the sound mixer.
5. Investigating ZX81 tape format.
6. Added current snapshot and tape to the internal structure need to
re-vamp it and ensure all INI settings a READ/WRITTEN.
7. Removed tape output from sound mixer cause of out(ff)/in(fe) kbd
stuff. Just won't give the effect I wanted.
8. .P files are now internally converted to .TZX files and load,
although it looks like my h/v/nmi generators aren't quite right as
all of the programs I've tried seem to crash rather quick.
9. Fixed .P->.TZX translation and they appear now to work.
10. Added in Wilf Rigters True Hi-res hardware patch to the emulation,
don't know if any hi-res works yet though as I haven't brought those
files home.
11. Last Tape file accessed is now saved out to INI file.
---+++*** TRS80 RANGE ***+++---
1. Couldn't make much progress so I decided to add the first parts of
the TRS80 shell. Menu options and base computer carcass now inserted
and compiling fine.
+----------------------------------------------------------------------------+
| Version 1.27a (29/Aug/97) |
+----------------------------------------------------------------------------+
---+++*** WIN95 GUI ***+++---
1. Added another flag to the setting section of the ini file to allow
the allways on top flag for the window to be turned off.
[Settings]
allways_on_top=1
2. Revised the RESET button to allow for more options E.G. multiface.
3. Tape format menu now defaults to an 'All tape formats' section.
4. Added voc into the menus of tape formats allthough it doesn't do
much yet.
5. Allways on top flag seems to be forgotten after a full-screen
experience. Investigating.
6. Recieved Direct X 5 final. Had to make a few changes from DX5 beta
but all appears OK now.
7. Fixed TZX tape file pauses and closing. TZX now has 2 pause types
an internal one I.E.
1. Pause_block(0) or menu pause
2. Soleniod pause (CPC and other machines can control the
tapes on/off automatically).
You can now play R-type, Agent-x, Lyra-II and many others.
8. Added TZX File sections to tape menu to allow you to fast forward
and rewind the tape to beginning of levels/tape. Handy for Agent-x
and others of a similar type I.E. Multi-loaders.
9. Split of the compat. section of this doc into a separate file called
COMPAT.TXT makes it easier to read.
---+++*** ZX80/ZX81 RANGE ***+++---
1. Still trying to get hold of some decent info on the damned thing so
I'm resorting to rom disassembly.
---+++*** AMSTRAD CPC RANGE ***+++---
1. Added the first hooks for Multiface II as suggested by Kev. Thacker.
2. Added rest of Multiface handler. It now appears to work fine under
general test conditions.
3. Before you ask I do not have or know of any location that any of the
multiface roms can be obtained from. So don't bother to ask me.
The multiface rom is still considered to be in copyright as far as
I have read and therefore should not and will not be distributed with
this program. |Rant mode deactivated|
4. Amstrad CDT tapes are now closed on reset.
5. Removed clearing of Multiface ram on reset to allow for MFRAM resident
programs.
---+++*** SPECTRUM RANGE ***+++---
1. After the success of adding multiface support on the CPC range
I have now added Multiface 128 support. I works most of the time but
I've noticed problems sometimes when it returns to the frozen program
and the program remains frozen. Currently under investigation.
2. Changed the operation of an interrupt. If it is not serviced straight
away (IFF1!=1) then it is thrown away. This was causing problems
on return from the MF128 as an EI could be sent and then before the
MF128 had disabled itself an IM1/2 int came along and jumped to the
MF128 int handler which does RET. And therefore IFF1=0 IFF2=1 (DI).
Any comments on this throwing away would be handy,see "QUESTIONS
FOR ALL YOU TECHNO-HEADS" section 6.
OOOOOOH Sexy, I've just discovered that fixing this also fixes
some problems with Commando 128. Now removed from incompatability list
Commando 128 - Prints part of the Published by thing
and then stops responding to
keypresses but still scrolls and plays
the music.
3. Modified the TS2068 memory map to use SNA/Z80 compatible banks 5,2,0.
This now means that SNA and Z80 programs could be selectively
loaded in TS2068 mode, still some minor problems to get rid of first
though.
4. Major work on the TZX handler in preperation for proper TZX menus.
Jump to relative block should now function internal to a TZX file.
Ready now to fix pause key conditions.
5. Spectrum TZX tapes are now closed on reset.
6. Way hay MDADEMO.TZX now works, maybe due to the interrupt handler
changes as mentioned in point 2. Also SIL5.TZX now loads and runs.
7. Removed clearing of Multiface ram on reset to allow for MFRAM resident
programs.
8. Added another flag to the ini file to allow <128k models to have a
AY located at the same place as the 128k AY.
[Spectrum]
enable_128_ay_in_48=1
This helps with some demos snapped under 48k that have 128k sound.
9. Spectrum keyboard is now updated only once every 50th of a second
like the joystick. This make IO port access faster. If a different
layer of the kbd is requested it will still re-read it. Helps on
games which repeatedly sit there at the start playing music and
waiting for any key to be pressed.
10. Ghosts and goblins flicker appears to have been fixed by certain
recent fixes.
Ghosts'n'goblins- Flickers unacceptably.
+----------------------------------------------------------------------------+
| Version 1.26a (27/Jul/97) |
+----------------------------------------------------------------------------+
---+++*** SPECTRUM RANGE ***+++---
1. Ooops TS2068 video memory was not acting as if it was contended,
now fixed.
---+++*** ZX80/ZX81 RANGE ***+++---
1. More general systems tied in but no actual runtime execution yet.
---+++*** WIN95 GUI ***+++---
1. Certain users have been experiencing problems with full-screen mode.
The problem has been that the screen is still small. Hmmm I said to
myself what would cause this..... Aha what if the drivers they had
for DirectX did not support the lower res modes I was using. And
that was the problem. The ATI 3d-rage II and S3 Virge drivers support
lovely modes like 320x200,320x240,400x300 etc. But after trying out
the latest S3 Trio 64V drivers on my sons P100 I discovered that he
had the same problem.
To solve the problem I have added in PIXEL DOUBLING on full screen.
If the video card supports the resolution requested it ignores the
current status of the DOUBLE SIZE option on the menus and just goes
for the exact mode. If it can't find this however it now searches
for a pretty appropriate mode to double up into.
E.G. if no 320x240 present it will look for 640x480 and double into it
***NOTE*** : This doubling up code is currently pretty crap so it
is by no means fast. However it does give a full screen
option to users with out-dated display drivers. Or
cards from manufacturers who can't be arsed updating
their old drivers.
If you card supports these modes under DOS but not under DirectX
email you card manufacturer and ask thier support staff why not.
2. The file LOG.TXT now contains extra information on which video modes
your video board and current driver support.
+----------------------------------------------------------------------------+
| Version 1.25a (23/Jul/97) |
+----------------------------------------------------------------------------+
---+++*** SPECTRUM RANGE ***+++---
1. Cleaned up port access stuff a bit.
2. Added TS/TC2068 normal screen,secondary screen and extended colour
screens are all handled but no hi-res yet. EXROM and DOCK selection
and paging are all working and its looking pretty good. Oh and the
TS2068 AY chip is plugged in.
If anyone has some TS2068 enhanced software could they please try it
and tell me what happened.
+----------------------------------------------------------------------------+
| Version 1.24a (25/Jul/97) |
+----------------------------------------------------------------------------+
---+++*** ZX80/ZX81 RANGE ***+++---
1. Put together most of ZX80/81/TS1000 shell. Options now in the INI
file and rom/memory initialisation is performed. Hopefully ZX80/81
emulation will actually be running in the next rev.
---+++*** AMSTRAD CPC RANGE ***+++---
1. Some modifications to the PLUS emulation.
2. The "colour_monitor" option in the INI file is now actually used, so
if you wish to be the proud owner of a CPC with green screen monitor
change "colour_monitor=1" to "colour_monitor=0".
---+++*** SPECTRUM RANGE ***+++---
1. Added the ability to have the Fuller AY box hardware on < 128k modes.
Just set "fuller_ay_box=1" in your ini file, fuller joystick is not
yet handled as I want to sort out the GUI section of that first.
2. Added port 0x80FD for 128k AY data reg handling as DIGISYNT.Z80 and
SAMPTRAC.Z80 both used this port instead of 0xB0FD for some reason.
3. Slight changes to the way non-existant memory is handled on the 16K
spectrum to try to avoid auto-detection of 48K/16K.
---+++*** Z80 ***+++---
1. Speeded up a couple of things to do with T-state counting.
---+++*** WIN95 AUDIO ***+++---
1. Added the following items to the INI file.
[Audio]
frequency=44100
resolution=16
channels=2
If your sound-card is mono then try "channels=1", if it doesn't
handle 16 bit try "resolution=8", and if it doesn't handle 44k
samples then try "frequency=22050". Added after an email from
one of the new testers (sorry I don't have my list of names
with me at home so I'll change this tomorrow if I remember).
---+++*** WIN95 GUI ***+++---
1. Removed the LOG Z80 COMPARISON as it is no longer required.
+----------------------------------------------------------------------------+
| Version 1.23a (12/Jul/97) |
+----------------------------------------------------------------------------+
---+++*** AY-38912 ***+++---
1. Fixed hardware enveloping as it was completely guff.
2. Fixed hardware translations as they could under extreme circumstances
wrap and cause popping.
3. Optimized the hell out of the line mixer. There now seems little point
in converting any of it to asm.
4. Port A (and B) are now handled as function calls. Makes life a bit
simpler internally. Yes I know the AY 38912 didn't have a B port but
some compatible chips did. And they may be needed for the other
machines I want to emulate like the MSX.
---+++*** SPECTRUM RANGE ***+++---
1. 128K SNA format files may previously been identified as 48K ones. This
is now fixed.
+----------------------------------------------------------------------------+
| Version 1.22a (7/Jul/97) |
+----------------------------------------------------------------------------+
Note:-
A long period has elapsed since the last update due to my machine
total screwing up. Over that period there have been more fixes but I
can't quite remember what they all were.
---+++*** SPECTRUM RANGE ***+++---
1. Changed the palette in the INI file to be more like the palette in
X128 as requested by Mr. Tomaz Kac. If you don't like it then change
it or uncomment out the old palette (don't forget to comment out the
other though).
---+++*** AMSTRAD CPC RANGE ***+++---
1. Oh my god I managed to totally screw up the memory handling and
anything other than a 64k machine would have responded very badly to
memory paging. This fix means that a lot of previously duff games now
manage to work. Fruit-machine simulator 2, Jinxter, Impossamole,
Rainbow Islands and others now actually do more than crash. Oh and I
forgot Fairlight II now actually works.
---+++*** WIN95 GUI ***+++---
1. Joystick enable/disable option added temp to mode menu. I'll leave it
there until I get the preference sheet type things working. If you are
experiencing a slowdown and you are using a joystick then try
disabling it as PC joysticks can be notoriously slow to read.
Also added enable/disable option into the ini file.
2. Anyone using a disc file in the emulator would have found that it
logs all fdc accesses to a file called LOG.TXT. This now only happens
if you have the LOG FDC RESULT option in the DEBUG menu checked.
---+++*** MTM.TXT ***+++---
1. Reformatted this damn file so notepad etc could see it properly
+----------------------------------------------------------------------------+
| Version 1.21a (23/Jun/97) |
+----------------------------------------------------------------------------+
---+++*** AMSTRAD CPC RANGE ***+++---
1. Ooops got the joystick directions round the wrong way.
---+++*** WIN95 GUI ***+++---
1. Full-screen mode code has had a drastic shakedown. Each machine now
requests a certain video page size and depth and the code attempts to
find the best match. If this match is larger than the requested size
then a window the size that was requested is displayed on this page.
The sizes requested are :-
Standard Overscan
Spectrum 320x200x8 320x240x8
Amstrad 320x200x8 400x300x8
Amstrad plus 320x200x16 400x300x16
2. Any portion of the video window not scanned by the display hardware is
now set to the current border at the time the VSYNC occurs. This is
really only relevant to the Amstrad. Changed in response to questions
by Mr. Speccy.
3. Joysticks 0 and 1 are now only polled 50 times per second rather than
on every access to thier hardware port. Not really what happens on
these machines but if any game actually needs changes within 1/50 of a
second then I'd be amazed.
4. Joysticks are now ignored if they are unplugged.
---+++*** Z80 ***+++---
1. Looks like the DAA instruction is playing up again, time to
reinvestigate.
---+++*** SPECTRUM RANGE ***+++---
1. A few more tweaks to the cpu-rate conversion factor in the TZX handler
+----------------------------------------------------------------------------+
| Version 1.20a (16/Jun/97) |
+----------------------------------------------------------------------------+
---+++*** SPECTRUM RANGE ***+++---
1. PC Joystick now appears as kempston joystick.
2. Made a few fixes to the TZX code, TTRACER and some others now load fine.
---+++*** AMSTRAD CPC RANGE ***+++---
1. PC Joystick now appears as JY1, supports button A and B.
---+++*** Z80 ***+++---
1. Made some changes to the CP instruction, still not behaving but I am not
very happy with the whole ADD/SUB/ADC/SBB/CP code generator section.
+------------------------------------------------------------------------------+
| Version 1.19a (14/Jun/97) |
+------------------------------------------------------------------------------+
---+++*** SPECTRUM RANGE ***+++---
1. Implimented baseline TZX.
2. Added TZX compatability list to top of MTM.TXT based on my own tests so
far.
3. Changed spectrum overscan display from 320x200 to 320x240 as requested by
Mr. Tomaz Kac.
4. Patched data returned from an undefined ula port (i.e. VR data) not sure
if this is and acceptable implimentation. Fixed stall problem with Cobra
may fix flickering problems on other games.
5. Partly integrated other joystick types and fuller/ts2068 ay chips. Nothing
should be visible yet but hopefully in next rev.
---+++*** Z80 ***+++---
1. Verified T-state timings for all instruction groups, also changed how
refreshes are handled.
---+++*** WIN95 GUI ***+++---
1. Changed how the file menu is laid out as it was getting to big.
2. Fixed accelerator keys (it helps if you use the right part of the MSG).
3. Changed windows border style to stop resizing.
4. Changed accelerator keys to be more in line with ZX32, no point in defining
yet another (non-)standard layout for keys.
5. Only reverts from full-screen to GDI while a file window is open.
+------------------------------------------------------------------------------+
| Version 1.18a (10/Jun/97) |
+------------------------------------------------------------------------------+
---+++*** WIN95 GUI ***+++---
1. Integrated DirectInput to ease keyboard problems.
2. Removed DirectInput because its shit and its slow.
3. Fixed problems when task was put in background and it would never happily
:-) return to the foreground when asked nicely.
4. Removed the minimize button as it was pi$$ing me off.
5. Added high_priority=0/1 to the [settings] section of the INI file, this will
up the processed priority to give it more task time.
+------------------------------------------------------------------------------+
| Version 1.17a (9/Jun/97) |
+------------------------------------------------------------------------------+
---+++*** SPECTRUM RANGE ***+++---
1. Fixed flashing which I cocked up in v1.16a
---+++*** WIN95 GUI ***+++---
1. The INI file is now local to the EXE rather than stuck in the WINDOWS dir.
2. Spectrum and Amstrad colours are now redefinable in the INI.
+------------------------------------------------------------------------------+
| Version 1.16a (5/Jun/97) |
+------------------------------------------------------------------------------+
---+++*** Z80 ***+++---
1. DAA was not operating correctly under all conditions. Example exact
behavior on a real CPC and have hopefully fixed it.
2. All undocumented instructions I could find reference to have now been added.
3. The Z80 Cpu code generator now produces both 'C' and ASM so as a result the
latest version now runs with an ASM cpu core.
4. NEG was simplified down to a table lookup to improve efficiency.
5. HALT well I really f#(<$d up here didn't I, in previous versions on entry to
an interrupt when halted the address on the stack would be pointing at the
HALT rather than the instruction following, now well fixed.
---+++*** PPI8255 ***+++---
1. Changed the behavior of the internal input output gating, I'm still not
happy with its operation though. Some games still refuse to accept input
unless a vile kludge is in place, and some don't even work with the kludge.
E.G. Gun fright/Firelord/Starglider.
---+++*** AY-38912 ***+++---
1. Completely changed the operation of this device from an interrupt based
mixer to a line based mixer. This was necessary for mixing in the Spectrum
speaker and getting the CPC+ audio dma to be happy. You can now hear sample
playback (cool).
2. Hardware enveloping is improved but still not right.
---+++*** FDC 765a ***+++---
1. First five of the FDC commands are now implimented allowing you to read .DSK
files for the CPC and Spectrum +3. If an undefined command is passed to the
pseudo-controller it will terminate immedietaly.
---+++*** CRTC ***+++---
1. Rewrote the main hsync/line counter code some more programs that use split
screen modes and hardware splits now work. Some which previously worked now
do not. This is the chip I am least happy with at the moment.
2. Added CPC+ palette handling and screen redraws.
3. Added CPC+ hardware sprites.
4. Added CPC+ scrolling and split screens.
5. Added CPC+ line based DMA/interrupts.
---+++*** AMSTRAD CPC RANGE ***+++---
---+++*** SPECTRUM RANGE ***+++---
1. Rewrote video display routines so each byte with attribute involves only a
few table accesses and two long word writes. Should speed up display by a
good deal.
---+++*** WIN95 GUI ***+++---
---+++*** WIN95 AUDIO ***+++---
+------------------------------------------------------------------------------+
| Version 1.00a-1.15a |
+------------------------------------------------------------------------------+
---+++*** Text removed to protect the guilty ***+++---