

              The Minus4j Emulator V1.5!
          Copyright Mike Dailly 1998-2008

	               E-Mail me on
	              mike@dailly.org


          The latest relase can be found at
               http://minus4.plus4.net




                    DISCLAIMER


  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 YOUR
  FAULT! ALL IN ALL - YOU USE IT AT YOUR OWN RISK!



What is it?
-----------
Minus4j is a Commodore Plus/4 emulator, written totaly in Java version 1.5
It is an applet, and will run on "most" java enabled browsers.



What do I do Now?
-----------------
The latest version is 1.4, and is currently available for download. 
Its fairly easy to use, but does require an HTML web page to get working locally.

To play, all you need to do is load the HTML page, and click on the applet... 
then use keys or joystick (cursor keys) and play your fav plus/4 game! 

Heres a list of other keys you'll need...

F7      -   Sound ON/OFF
F8      -   Display the current FPS
F9      -   Frame Skip, speed it up on slower machines.
F10     -   Joystick 1 emulation ON/OFF 
F11     -   Joystick 2 emulation ON/OFF 
F12     -   Debugger ON/OFF. This is a very simple debugger. 
Insert  -   Soft Reset


Feel free to use this where ever you like, but if you do decide to have 
Minus4j on your page, please drop me an email and let me know about it.



Parameters
----------
rom    =    where the plus4 ROM is stored ("plus4.rom" by default). 
            tednoise.raw must be stored in the same place. 
prg    =    optional "Autoload" and run a PRG
cmd    =    Command to execute after loading ("run" by default)
fps    =    target frame rate  (50 by default)
skip   =    Initial frameskip value
sound  =    "on" or "off"

joy    =    Auto-Enable joysticks.  
                1 for Joystick 1
                2 for Joystick 2
                3 for BOTH Joysticks

round  =    Enable rounded "TV" mode, using a plus/4 colour index.
            If not specified, then not image is not rounded.
            (0=black, 255=white). 

width  =    "applet" canvas width specifies the "actual" width of the screen
height =    "applet" canvas height specifies the "actual" height of the screen
            (Plus4 screen is scaled to fit - even shrunk)

 





History
-------  
V1.5
----
Added	-	Added a paramater for the initial frameskip value.
Update	-	Removed software screen scale and now use built in JAVA one - should be MUCH faster.
Added	-	Added ESCAPE key (Escape)
Added	-	Added RUN STOP key  -  ` (backwards apostrophe, usally beside the 1 key)
Added	-	Added the * key (numpad)
Added	-	Added undocumented opcode LAS,Y ($BB) command. Danger Diamonds now runs.
Added	-	Minus4j now picks up sys0000 style RUN commands from the filename. 
			So games like "mercenary_sys23552.prg" now work without a seprate RUN command.
Added	-	Minus4j now picks up g12AB style RUN commands from the filename. 
			So games like "mercenary_g5C00.prg" now work without a seprate RUN command.
Added	-	TED Sound!!!
Added	-	TED Samples!!
Added	-	New "sound" paramater. sound=off or sound=on are valid. ON by default.
Added	-	You can now press F7 while running to toggle sound (mute).
Added	-	Added VOLUME control register.
Added	-	If joystick is enabled, CursorKeys and Space key is disabled.
Added	-	"INSERT" now does a soft reset.
Added	-	Emulator now shuts down better.



V1.4.1
------
Quick update to fix the timing code. Should now do faster speeds properly.
(Or work quicker for slower machines...)
Updated the frameskip so it doesn't even process the screen rendering. 
You now get a much better speed boost.



V1.4
----
Updated rendering engine ported from Minus4w, should handle more cases.
Updated CPU processing ported from Minus4w. More games should run.
Fix a crash in the CPU processing.
Changed the colours to what Yape uses (much nicer)
Added FLASH attribute, so things now...flash. (Manic Miner keys, Monty pick-ups etc.)
Fixed the rendering frameskip - it was always skipping at least 1 frame *idiot*
Fixed the overflow flag (V) on the ADC instruction. Mercenary now works!
Added the new "joy" paramater
Fixed commando - added several undocumented NOP codes.
Swapped to the YAPE colour palette.
SOME vertical scrolling games work.



V1.3
----
Now ties itself to a user framerate were ever possible, 50 by default.
You can now scale the screen into a larger display (720x480 is *2)
You can now "round" the edges of the display to simulate a TV


V1.2
----
Joystick support added via the cursor keys and SPACE 
FPS added 
"SLOW DOWN" key added. 
Extended Colour Mode added. (Manic Minor displays correctly) 
Drawing of scanline is delayed to a better place. ( helps Manic Minor ) 
IRQ is delayed by 2 instructions, rather than 8 cycles. (Icicle Works, now .... works) 
Commodore Key ( C= ) added .... backslash (may vary on other keyboards) 
 

V1.0
----
Basic emulation, and first release - ALL CPU instructions added. 
Lots of known problems.



Known Bugs
----------
Booting to basic then entering the monitor and and assembling an opcode doesn't work - CPU bug.


To-Do List
----------
FIRE must change from SPACE to CONTROL or ALT as too many games use space as well.
TURBO/WARP mode. 


