home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 18
/
aminetcdnumber181997.iso
/
Aminet
/
misc
/
emu
/
AXF_64_a31.lha
/
README
< prev
Wrap
Text File
|
1995-10-01
|
11KB
|
253 lines
WHAT:
Emulator of C= 64 for Amiga computers with 68020 or higher. $15 ShareWare.
WHY:
Because A64 (both 2.0 and 3.0) sucks IMO. And I think the Amiga deserves
good emulators like the PC has. (Update: I've seen Frodo now - good try,
but way slower than mine... I think I can beat it.)
HOW:
First you need 3 files: "C64.BASIC" (or "Basic ROM"), "C64.KERNAL"
(or "Kernal ROM"), and "C64.CHARSET" (or "Char ROM").
These must be exactly 8192, 8192, and 4096 bytes big.
These are just dumps of real C= 64 roms. They are not included for legal
reasons, but I think several other emulators actually include them. You can use
the same ROM files that Frodo uses too.
Put these files in the current directory or in the same directory you store
the executable (only helps for KS 2.04 and higher).
You can now start the emulator. You can LOAD files that are in RAM: or C64:
(assign it where you have you your files). The fileformat is the same as
A64. Disk images are not supported (yet). Use 'LOAD "FILENAME",8'.
The keyboard is mapped nearly 100% like a real C= 64 so the keys wont
always match the Amiga keyboard. The RESTORE key is not mapped at all.
The joystick port of your Amiga maps to the right C= 64 joystick port on
default, but this can be changed (see below).
Hires character mode is the only mode supported.
Multicolour sprites supported, but colours not set right.
Sound is supported if you have the sound library from A64. (NOTE: There is
a bug in the library that can affect you sometimes...)
There is no restart option, you have to quit the emulator with the ESCAPE
key.
Special keys:
Escape Quits AXF-64
(All the rest on the numerical keypad)
* Waits an extra frame before continuing emulation
/ Swaps around the joystick ports on the C= 64
) Uses Amiga mouseport as 2nd joystick port (both are still swappable)
( Resets C= 64 (might not work 100% yet)
+ Switches on/off input handler's eating of key events. The C= 64 will not
get any input when the Amiga gets input.
- Switches on/off auto-sync. In 'off' position no frames are skipped.
SPEED:
Faster than Frodo, but slower than A64. My 4000/040 runs mostly 1:1 compared to
a real C= 64. Bank switching is slow if mmu isn't used. 030 users might find it
enjoyable though. If the graphics conversion lags behind it will skip screen
refresh until it catches up (or until it feels it has to redraw).
Unlike many other emulators (but like Frodo!) the relative speed of the
screen update and the cpu speed does not change, it will always run
internally like a 1MHz PAL C= 64, and never faster than a real C= 64.
(Later versions will have adjustable speeds here.)
68040 (and probably 68060 too) users get wildly faster bankswitching if
enforcement.library is available (and opens ok).
WHY SELECT AXF-64:
It does a few things that A64 doesn't. It can do raster bars. It can do
raster interrupts and screen changes on a per line basis. It was made with
big cpus in mind. It bangs the screen hw to get faster and closest possible to
a real C= 64 in appearance.
TODO:
VGA(doublescan) screenmode. Screen works, but sprites are yet unknown.
Multicolour character mode. I have ideas and all, but I need to test a little
to see if I can make it fast enough.
AGA support. Try to use other algorithms to reduce chip bus activity.
Full sprite support. I have code and ideas for that too.
Bitmap modes.
All timers. I have ready code for that too.
Support disk images.
Make different screen update modes for different configurations.
New in Alpha 15:
Oooops! Sorry to all who downloaded Alpha 13. It relied on my patched Kernal
to sniff LOADing :(((. Fixed now.
Copperlist building logic improved.
Code simplified giving smaller size and more speed (a case of blowing the
040 caches methinks).
New in Alpha 16:
Redid the bankswitch logic for the VIC II chip. Seems to work better now,
but I still have some unresolved cases for what to do when $D000 ram is
banked in.
Looked at raster interrupts, and they don't look good :-(.
I got it a little better, but it still needs work...
New in Alpha 17:
Fixed raster interrupts. Seems to be working 100%.
New in Alpha 18:
Fixed bug in LOAD patch (returned wrong end of file address).
Basic programs still bugs :( (but a little less...).
Swapped '<-' and 'DEL' key on request.
New in Alpha 19:
Fixed idiotic bank switch bug.
New in Alpha 20:
Sound. Frodo 1.3 used 6581SID.library so I took a look at its code (since I
don't have any documentation for the library :( ) and added sound to AXF-64.
Finally added a systemfriendly vertical blanking interrupt.
There are still bugs... someplace code is written over. Basic gets fits over
integers becoming floats. Timer interrupts are plain bugged.
New in Alpha 21:
Hires(320 pix resolution) sprites on AGA machines. No multicolour or size
doubling yet, and sprite colours aren't handled yet.
Fixed bad assembler bug that was writing over code so that opcode $00
(BRK == breakpoint) gave an Enforcer hit and didn't work. The included
"enforcement.library" is just for debugging (and 68040 running Enforcer)
and can be deleted if you want (else put it in Libs:).
New in Alpha 22:
Fixed a wild write to chipram that also fixed a timer and interrupt problem.
Fixed timer interrupt handling. Fixed raster interrupt clearing problem.
Now the example programs that come with Frodo have stopped crashing, but they
don't look perfect yet.
New in Alpha 23:
Auto speed adjust. If more than 1 frame is used to emulate 1 C64 frame then
only border colours are updated until enough frames have been skipped.
New in Alpha 24:
enforcement.library debugged and now working. Uses 68040 MMU to writeprotect
memory and to remap addresses (gives _fast_ bankswitching), and also to map
memory pages containing same data to only a single page.
New in Alpha 25:
Added input.handler for keyboard operation. May have bugs because my machine
freezes for no good reason some times (after quiting AXF-64).
New in Alpha 26:
AXF-64 would initially start informing 6581sid.library of '$00' writes to all
SID registers, which is now fixed.
Bug that hindered hw access optimisation found; slightly faster code now.
Preparations for full sprite emulation in AGA.
Amiga cursor keys checked for and mapped to right_shift_key + down/right key.
Optimisation: Now only eats 1 byte when fetching instruction instead of 2 as
it used to do.
Optimised instruction jumping.
Horrible memory stomping bug found (which also fixed some timer interrupts).
Bug in opcode $F5 fixed (SBC ZP,X).
Emulation of stack use optimised.
Indirect addressing optimised.
Instruction jumping optimised further.
Basic works... (yeah! opcode $F5 I guess)
Hopefully fixed megacrash that made odd stuff happen in level 3 interrupt (did
give 6581sid.library's interrupt a chance to run before it was properly
initialised. Sounds better now too.).
New in Alpha 27:
Multicoloured sprites (but still not multiplexed).
Column select bit in $D016 is now handled.
More undocumented opcodes handled (Mega Apocalypse starts now).
Found serious bug in 6581sid.library. I recommend that you remove this library
from your machine. Use Frodo as a reference to check the interrupts list
after using it (with ARTM or similar tools).
Runs ok from WorkBench now.
Unreleased addon to save history of 6510 program, and to later compare with
other run of same program under different setups.
Killed serious bug that crashed your machine _hard_. (Forgot to restore A6 after
OS call.)
Fixed ugly bug in opcode $75 (ADC zp,X). Pacman is now working again.
Will search for the ROM files using Frodo's names too.
Begun work on support for border opening: Screen is not filled with last byte
of bank in border, but it is opened.
Fixed bug in enforcement.library.
New in Alpha 28:
Corrected bug in opcode $E7. And another one in $E7. (Blue Max starts! But the
bugged keyboard makes it unusable...)
Corrected keyboard. Blue Max is playable.
New in alpha 29:
Fixed 24/25 column stuff.
Fixed black colour that was set to background colour.
Fixed border opening.
Fixed raster interrupts (again - sigh). Most example programs with Frodo works
ok now.
Triplebuffered bitmaps again. Scrolling is ok now (Revenge OTMC too).
TODs implemented.
Faster handling of read/write to ROM/hardware.
Added keys for extra joystick/joystick swapping/reset/input stream change.
Fixed bank switching when MMU is used.
New in Alpha 30:
Blacks out when impossible graphics mode combinations are used (like a real
C= 64 does).
Multicolour colours displayed correctly (at least it is every 8th line), but
still drawn in hires. Uridium and Super Gridder look ok now.
Auto frame-skip improved (turned off cache to test it. Severely bugged). Stars
in Uridium still wont stand still.
Did some more mmu stuff.
Multicolour character mode implemented. A bit slow.
New in Alpha 31:
Added opcode $4F. Wizard of Wor works.
Fixed some undocumented opcodes (I hope), added most others (correctly I hope).
Up'n'Down works.
Found out that my scroll/bitmap stuff isn't synced as I thought.
Removed unused code/variables and optimised some of the graphics code.
Slightly faster setting of N bit.
Fixed some bad cases of 6510 memory writes.
NMI handling improved (but still no NMI generators).
Starts up with all black screen (like a C= 64 does).
Moved screen one line up (now starting at line $32), and moved sprites one pixel
to the left.
Slightly shorter copperlists, and bitmap not on in border if not opened.
Fixed opcode $CB(I hope). Fixed many undocumented opcodes.
Made simple monitor like disassembler for hooking in later.
Fixed auto-sync finally.
Known problems:
- I don't have a total, complete reference for all the 6510 instuctions! :-(
- If you try "FOR X=1 TO 50000:NEXT X" then it takes much longer time than it
should. A test with pure 6502 code shows much more sensible results.
- Will bug your machine if it finds 6581sid.library. If all you wish for is
sound then use the library and do a reset after you finish using AXF-64.
- If your machine is too slow to draw a C= 64 frame in 6 frames then you will
still get "jumping" graphics every 6 frames (or n*6 frames depending on machine
speed).
- Wizball has unknown problems.
- Lode Runner uses bitmap mode and therefore doesn't display.
- Uridium has wrong graphics for your shots. Still unknown why.
Thanks to Christian Bauer for pointing out that pflush (a1) takes a logical
address (and not physical as I turned out to be using). Also thanks to him for
the indepth DC00-DC03 explanation.
ShareWare:
The quality has now reached a level where I am beginning to take ShareWare
registrations. This program is ShareWare in the real old-fashioned way; you
get the whole thing for free right now, and you're supposed to show up some
$$$ if you find it worth using. If you do not think it is worth $15 then delete
it and forget it. If you register I'll send you the latest version on a floppy
disk and you will see your name in glory on a thank-you list included with
future versions. If you have an email address I'll also send you updates by
email. Suggestions from registered users will take priority.
-Børge Nøst (borgen@hstud4.cs.uit.no might work. Try snailmail if all else fails)
Boks 218
9001 TROMSØ
NORWAY
(Hei FunCom, hvis dere synes dette ligner noe så leter jeg fremdeles etter jobb :)