Nowa wersja testowa WinUAE, wzbogaconego o emulację PPC (PowerPC) zaczerpniętą z kodu pearpc. Jak się okazuje wykorzystanie kodu z pearpc niestety nie było najlepszym pomysłem - im dalej w las tym trudniej - stąd Toni Wilen spróbuje zaimplementować rdzeń z Qemu, niestety znacznie bardziej skomplikowany niż w pearpc - czas implementacji jest nieznany.
Napewno na prędkość zmian pośrednio wpłynie dotowanie pracy autora, do czego zachęcam tych, którym PPC jest niezbędna do pełnej emulacji Amigi na PC.
AmigaOS 4.1 pod WinUAE 2.9.0 beta 10. Photo@Toni Wilen.
WinUAE 2.9.0 beta 11 [16/08/14]
- P5_AMIGA_RESET CSMK3/CSPPC/BPPC bit can be only changed if P5_SELF_RESET is cleared first.
- Never use normal Z3 autoconfig mapping if Blizzard board is emulated to reduce address space conflicts with Blizzard RAM mirror at 0x48000000. Note that this is impossible config, there is no way to have any Z3 boards with BPPC in real world.
- Blizzard PPC rom name renamed to blizzardppc_060.rom and added blizzardppc_040.rom. 68040 and 68060 variants have different (and incompatible) flash rom contents.
- 68000 + no cycle exact and no "more compatible" used wrong memory access method. (b9)
- RTD instruction was set as 68000 compatible (should be 68010+). Incorrect since the beginning.
- Accelerator board ROM select menus didn't select anything.
- Added full CyberStorm MK1 image ($F00000 ROM code is 68060-only), added another 68040 compatible ROM that simulates boards with boot rom jumper disabled or boot rom chip removed. (Original non-flash based boards had separate ROM chip for boot and diag ROMs and boot was only installed if CPU was 68060)
- CyberStorm MK1 SCSI works again.
- Automatically update accelerator board ROM settings when board type is changed in GUI.
- PPC BAT register handling fixed (Technically not emulation bug but OS bug, PPC documentation says '... BEPI and BRPN fields must have at least as many low-order zeros as there are ones in BL.', BEPI and BRPN needs to be masked with BL instead of trusting software doing as documentation says..)
- Added missing PearPC divwu, divwuo, addco, subfco PPC instructions. (Variants of already existing instructions).
Last two updates allows AmigaOS 4.1 Classic to boot.
- OS4 note: If you enable Z3 RTG board, it must be mapped at real Z3 space (0x40000000+), "JIT Direct compatible Z3 memory mapping" must be unticked or you must have large enough host address space (=64-bit Windows). OS4 resets the system and autoconfigures all boards, m68k hacks can't work. (NetBSD and Linux work because they read board config data from AOS expansion.library before taking over the system)
- PearPC CPU emulator is a dead-end. Missing instructions, only partially emulated instructions, no support for integer overflows, division by zero, illegal instruction exceptions and so on.. (Which means any buggy or badly behaving program can crash the emulator or hang or crash emulated operating system). It did its job, allowed easy and quick PPC emulation test. It would not have happened with any other more complex cores.
- It seems most compatible PPC CPU emulation is in QEMU. Dolphin only have experimental MMU support which is not supported in JIT modes. But QEMU is complex, very complex..
WinUAE 2.8.2 beta 8 [31/07/14]
- When loading old config which has both cycle-exact and fastest possible enabled: disable fastest possible. Previously this combination was invalid but some for some reason old configs can have both set.
- One second boot delay was always active, even when restoring statefile..
- "Fastest possible" with cycle-exact now works as designed, removes all CPU internal processing cycles, only affects 68000, 68020 and 68030 models. (68040+ and 68030 MMU is always internally immediate). This should be better option (uses less CPU time) than using MHz adjustment if you want fast CPU in cycle-exact mode.
- Immediate blitter is now selectable in cycle-exact modes.
- Some more Z3 autoconfig mapping tweaks. (Warp Engine..)
WinUAE 2.8.2 beta 7 [29/07/14]
- NCR93C94/FAS216 SCSI emulation write didn't work correct and wrote corrupted data, fixed. Added also check that aborts transfer if SCSI chip and DMA controller data directions don't match (should never happen but...)
- Flash chip emulation didn't emulate all "chip is still erasing" status bits, broke CSMK3/CSPPC/BPCC flasher. Worked only accidentally in older version.
- SCSI Kit rom checksum data was in wrong position, broke Blizzard 2060 odd/even rom loading.
- CyberStorm MK2 flash update was not written back to rom file.
- "JIT Direct compatible Z3 memory mapping" option with RTG enabled worked only in some configurations.
WinUAE 2.8.2 beta 6 [28/07/14]
- Added NCR53C94/FAS216 SCSI chip emulation (from QEMU)
- Added Blizzard1230IV/Blizzard1260 + Blizzard SCSI Kit IV emulation. SCSI Kit v8.5 ROM added to rom scanner.
- Added CyberStorm MK1 and CyberStorm MK2 emulation, map rom and SCSI included.
- Blizzard 2060 (map rom not emulated) and Warp Engine works now.
- CyberStorm PPC and Blizzard PPC 0xFFF00000 mapping improved, now switches correctly between KS map rom and PPC boot code locations. BPPC now correctly attempts to start flash built-in PPC support code during boot and hangs because PPC won't respond.
- Added warning message when BlizzardPPC or CyberStormPPC PPC CPU gets booted.
- Remap UAE Boot ROM (if needed) to secondary backup location if Blizzard PPC is enabled, if MMU emulation is enabled BPPC will remap normal boot ROM backup location causing boot hang.
- Added CyberStorm MK2 flash rom chip emulation, map rom and disable key support (=HALT4).
- Added CyberStorm MK2 full 128k rom image support (64k of autoconfig rom and 64k of diag rom)
- Flash chip emulation compatibility improved, fixed CSMK2 flasher infinite loop.
- Accelerator memory option now automatically changes CPU board memory if accelerator uses same memory type.
- Added keyboard to help Phase5 boot rom key detection, it still wasn't realiable enough with some boards.
- Added one second boot delay option to misc panel, allows easy access to boot menus without need to slow CPU emulation speed.
- Added 'Te' command to debugger, shows expansion autoconfig board information.
- CPU slot memory region was accidentally removed from mman list, causing random crashes in some JIT configurations.
- 68040+ more compatible / "cycle-exact" mode cache flush instructions didn't do anything.
About PPC emulation.
- It is now possible, at least technically, all other pieces are now done (at least partially). QEMU has license compatible and apparently very good PPC CPU emulator, including MMU and dynamic translation and it is proven to boot at least Linux.
- Only need someone who knows QEMU inside out and can create standalone PPC emulator module that is black box that only needs few functions: read physical address, write physical address, reset PPC, set interrupt level, set CPU parameters. There appears to be some kind of CPU API/class but because it is unstable, internal only API, there is no documentation.
- Note that I still don't care what happens will happens in PPC side. If/when Blizzard PPC/CyberStorm PPC can run some small PPC programs = it is done.
WinUAE 2.8.2 beta 5 [25/07/14]
Big accelerator board emulation update:
- Added CyberStorm MK3, CyberStorm PPC and Blizzard PPC. ! There is no PPC CPU ! Technically it emulates board with PPC CPU removed. (Which surprisingly does not seem to cause any problems, at least under emulation, real hardware may get confused if PPC chip is removed). SCSI fully supported, boot menu works, boot menu options can be modified and saved to flash, flash updater works. Map rom should work, including BlizKick.
- Boot menu config is saved to flash rom which means selected flash rom will be modified, only use copy of your flash rom image (If it is writable, files inside archives are never modified).
- You need to be really fast or select slower CPU mode if you want to enter boot menu (ESC key). This needs some emulator updates to allow easier way to press keys when starting emulation.
- Map ROM is software selectable in boot menu, map rom option in GUI does nothing when using these boards.
- Flash ROM images must have following names and must be in ROM directory because checksum based ROM detection can't work:
- CyberStorm MK3: cyberstormmk3.rom
- CyberStorm PPC: cyberstormppc.rom (emulates Phase5 version that has 128k flash, DCE 512k flash version not tested)
- Blizzard PPC: blizzardppc.rom (Note: flash is 512k but second half is only used for config, if rom image is 256k (size you get if you simply dump the F0 space from real hardware), it gets extended to 512k after onfig save or flash update). ROM images uploaded to the zone.
- EDIT: Physical flash file is updated (after flashing) only when emulator is reset or quit.
- GUI/config file ROM selection will be added later. Note that real flash rom images also contain some card specific information (PPC CPU speed, serial number which also includes card type). This area is blank in rom images uploaded to the zone (they are from official flash updater, old serial is kept when flashing). blank serial does not seem to cause any problems but some software probably gets confused.
- NOTE: Only Blizzards use Accelerator board memory slider, other boards use CPU Board memory slider and Accelerator board slider still needs to be set to some non-zero memory amount. (Will be fixed later).
- Blizzard PPC seems to have something else in F50000 which may be important. (I only have CyberStorm PPC for testing). Blizzard is (and can't be) JIT compatible due to high RAM addresses and RAM mirroring, CyberStorms are much more JIT friendly but it is not guaranteed to be safe. Blizzard also does not boot if MMU emulation is enabled.
- Added optional FPU emulation that uses softfloat library, another feature not for normal use. Full 80-bit FP accuracy, bit-perfect results (not including trigonometric functions), supports FPU arithmetic exceptions, much slower (Uses integer algorithms, host FPU is not used).
- Added mostly unmodified Qemu 53c895a SCSI emulation (originally heavily modified for 53c710 emulation). It is 53c770 compatible, 53c770 is used in CyberStorm MK3 and CyberStorm PPC.
- Some 53c710 updates, Blizzard PPC SCSI driver didn't work.
- Added simple flash rom emulator.
- Fastest possible CPU option is now available for cycle-exact modes. CPU internal cycles are not counted, only (mainboard) memory accesses are cycle exact (DMA steals cycles from CPU) in this mode.
- 68040/060 "cycle-exact" mode is back, emulates only Amiga mainboard memory accesses cycle-exactly, includes instruction(*) cache emulation. Any 32-bit fast ram or cached access is still immediate. (Which is still much closer to real 040/060 than old behavior, 040/060 is heavily bottle-necked when accessing mainboard)
- 68040/060 "compatible" mode now adds instruction cache emulation.
- 68030/040/60 MMU mode "more compatible" (68030: adds both instruction and data cache emulation, 68040/060: instruction cache only) and "cycle-exact" modes supported. (more compatible + mainboard access slowed down)
- 68030: data cache support is temporarily disabled. (Didn't work with MMU for some reasonm)
- DFx: eject messages appeared in new status bar even if drive was already empty.
- Right-align status messages in fullscreen mode.
- A2065 autoconfig was broken (b4)
- b1 directory filesystem change rewritten again, removed also lots of unneeded complexity from original code.
- On screen CPU halt message reason code was always 1.
- Generated virtual RDB (when IDE/SCSI mounting partition hardfile) created empty string for device name.
- 270b6 "JIT MOVEM used direct mode if memory was direct capable but direct mode was disabled." was wrong fix, original code probably was done to work around some JIT indirect bug.. (AmiKit crash during boot if JIT is in indirect mode)
- *) Instruction cache only? because emulating data cache would not make any useful difference (except to slow down emulation), data cache normally does not cache any mainboard addresses anyway.
WinUAE 2.8.2 beta 4 [20/07/14]
- Added Blizzard 1230-IV and Blizzard 1260 board options. Do not use if you only want to run WB and other programs, it is not JIT direct compatible due to memory address space aliasing. Only emulates memory layout (which is Blizzard unique), matching CPU is not 100% required if you want to try weird configs. Map ROM is also emulated, old map rom checkbox in ROM panel enables Blizzard hardware maprom if Blizzard board is selected. Requires matching Blizzard flash ROM images. (Only difference between 1230IV and 1240/1260 is slightly different boot rom, hardware ram addresses appear to be exact same) Mostly useless, mainly meant to help development and testing. (Useful for aros m68k testing for me at least)
- Added Warp Engine board emulation (It has already emulated 53C710 SCSI), autoconfig works, ROM code runs, SCSI (53C710) does not work yet, not yet sure how jumpers are mapped to board address space.
- Really fixed CD32 data track checks. (CD32 Commodore Demo Disc 2.0 MPEG tracks)
- Disk Swapper panel drag'n'drop or file dialog multiselect mangled file names strangely.
- Added A590 XT drive emulation. A590 emulation is now complete WARNING: XT drives use real physical CHS geometry, don't attempt to use hardfiles formatted using other controller, it won't work in real world. (Emulation includes work around hack) Largest XT drive was 40M and protocol max limit is 511 cylinders, 15 heads and 63 sectors = ~235M. Both SCSI and XT drive can be active at the same time in same controller. Interesting fact about ROM xt.device: It uses WD33C93 Translate Address command to convert LBA to CHS which means WD33C93 chip needs to be inserted and working or XT (which has nothing to with SCSI) port won't work.
- Fixed A590/A2091 SCSI emulation crash if SCSI ID was non-zero.
- Z3 autoconfig was broken (b1).
- Serial port data rate register (SERPER) was not saved correctly to statefile.
- Serial port transmit interrupt and transmit related status bits are now more accurately timed in cycle-exact CPU modes. (If some software really cares, probably not)
- Inter-process serial port emulation added, when selected, automatically creates virtual null modem cable between two winuae processes. Uses shared memory, no latency. (Says "Master" in serial port selection menu if WinUAE instance created shared memory and "Slave" if shared memory was already created by some other instance. If nothing = something failed)
- Added support for short text messages, appears in OSD bar's unused space and windowed mode bottom bar. Currently only shows disk image eject/insert and input device autoswitch information. OSD messages won't appear in following configurations: native mode + DirectDraw + no filter and RTG mode + DirectDraw. (In DirectDraw mode status bar is drawn directly to target surface, erasing gets annoying because it should not be read. In D3D mode it is another texture, hardware does the rest)
- Added remove all button to Disk Swapper panel.
- Game controllers can be now optionally kept active when winuae window is not active or minimized.
- EDIT: Accelerator board roms in the zone.
WinUAE 2.8.2 beta 3 [11/07/14]
- Selected chipset extra didn't match what dialog box shows (b2). This broke many configs..
- CD32 FMV 16-bit display mode support.
- A590/A2091, A3000, A4000T and A4091 SCSI was not initialized unless at least one device was connected (b1).
- Added Picasso IV flash rom v7.4 image to rom scanner. It does not need to be called picasso_iv_flash.rom anymore.
- Added Blizzard 1230-IV and 1240/1260 Boot ROMs to rom scanner. (Coming soon Blizzard 1230/40/60 unique memory layout and maprom emulation. It can be useful for developers and for testing without real board. This was supposed to be implemented in this beta but chipset extra bug required quick update)
- .bin extension added to ROM scanner.
WinUAE 2.8.2 beta 2 [10/07/14]
Most important: WinUAE is not a video player!
- Pointless CD32 Full Motion Video cartridge emulation! (Check notes below)
- CD32 FMV 40.22 ROM image rom scanner checksum fixed (was from byteswapped image). ROM rescan required.
- Added CD32 FMV option to Expansion panel.
- Added CD32 FMV to ROM scanner result dialog.
- GamePorts panel autofire always-option crashed.
- CD image emulation didn't support 2336 to 2352 sector size conversion.
- CD image emulation didn't return correct data if image had 2 data tracks back to back and tracks from second data track was requested. (Cannon Fodder CD32 FMV track)
- Debugger MOVES instruction's source and destination was swapped.
- Quickstart CD image selection text box become empty after image was selected (b1)
- RTG scale options didn't work on the fly. (2.8.0)
CD32 FMV notes:
- ROM requests won't be allowed and will be deleted. ("Find" it yourself or get AmigaForever or something)
- Only supports CL450 MPEG decoder commands that basic playback needs.
- VCD quality is not that good: MPEG-1 with 352x288 (PAL) or 352x240 (NTSC) resolution, MPEG-1 layer 2 audio.
- Requires at least null filter. (Automatically enabled)
- Requires 32-bit display mode, 16-bit will work in future. (Not automatically enabled)
- Tested with CD32 FMV 40.22 and 40.30 ROM versions.
- Tested only with Cannon Fodder CD32 video track and one VCD movie.
- Rewind or fast forward hangs the player software. (No idea why. No CL450 commands sent.)
- AV sync may not be that good.
- Sound buffer underflows will happen.
- CL450 video window size and position values ignored, video window is always centered and automatically 1x/2x/4x scaled.
- Video is 1:1 pixel mapped, aspect ratio is ignored.
- Before reporting anything: make sure your Cannon Fodder CD32 image is correct. It must have 2 data tracks, check .cue file using any text editor. Plain iso also can't work.
- Config must be based on Quickstart "CD32 with Full Motion Video cartridge". Do not load old CD32 config and tick CD32 FMV expansion option. If you do it, you are on your own.
- Only obvious bugs (very jittery video, nothing happens etc..) will be accepted. Everything else will be ignored until I get my own FMV cartridge. I won't pay for it. Exception is getting enough donations.
WinUAE 2.8.2 - Gear Works (Hollyware Entertainment, 1993)
WinUAE 2.8.2 beta 1 [03/07/14]
All kinds of random updates. May not be normal beta quality yet but change log had become too long wall of text..
- Debugger TR command didn't handle linked resident lists correctly (inverted mask..).
- TO debugger command also lists FileSysStartupMsg and DosEnvec of mounted devices.
- Slow down 68EC020 RTE instruction, fast clock rate multiplier modes could have executed MOVE to INTREQ + RTE combination too quickly (before Paula had cleared the interrupt) causing interrupt to re-trigger immediately after RTE.
- Added SCSI controller selection to GUI and config file. ("SCSI (Auto)" does same as old plain SCSI selection = use first enabled SCSI controller).
- More than 1 SCSI controller can be now active simultaneously. (For example A4000T + A4091)
- Added support for two A590/A2091 and two A4091 boards, both (or even all 4) can be active at the same time.
- Secondary A590/A2091 and A4091 share primary board's boot ROM by default. a2091_2_rom_file and a4091_2_rom_file config file entry can be used to select other ROM version.
- 280b7 sprite update missed AGA bordersprite condition, causing clipped sprites in some situations (Silicon Graphics 2 / WFMH)
- Rewritten directory filesystem Examine Next logic, now returned fib_DiskKey always have file/directory entry specific unique value. Some programs check fib_DiskKey and (incorrectly) assume that it is unique value and may also assume file must be same if both file's have same fib_DiskKey. Now also C:List KEY output looks "correct". This needs testing because original (Tripos?) directory enumeration packet design is not that good..
- AGA border sprite bit set and if same scanline had at least 1 sprite that was outside of playfield and at least 1 bitplane was active and BPLCON4 palette XOR value was non-zero: wrong background color was visible in some situations. (Nexus 7 / Andromeda "shade cluster" part)
- Some BEAMCON0 programmed mode emulation updates. VBSTRT/VBSTOP register values only affect screen if VARVBEN bit is set.
- Use also value stored in VBSTRT (vertical blank start) register when setting up programmed mode vertical size, some weird modes can have (much) smaller VBSTRT than VSSTRT (vertical sync start). (Jtxrules by Illusion)
- HBSTRT/HBSTOP register values are only used if BPLCON3 EXTBLKEN bit is set. (Demos Contactro and Jtxrules by Illusion)
- BEAMCON0 HARDDIS bit also disables DDFSTRT hardware limit. (Weird stuff, VARBEAMEN disables it too, even superhires mode disables it..)
- Fixed "CPU trace blahblah" error after 68020+ state file was loaded and loaded program used bitfield instructions later.
- Split ROM images didn't load (again..) correctly if relative path mode was active.
- Added support for missing Z2 RAM board sizes (64k/128k/256k/512k). Note that small boards (256k and less) can be mapped at IO autoconfig base (0xe90000+) which makes predicting final address difficult: JIT (if enabled) can't use direct mode to access this RAM board.
- Added support for second Z2 fast RAM board. Size must be smaller or same as first board. (Makes JIT board address calculation simpler)
- Above two changes mean it is now possible to have total 6M of Z2 RAM in 24 bit addressing config with 2M gfx board config (4M + 2M and 2M gfx) or less useful 8M fast + extra 256k of fast config...
- Z2 gfx board JIT direct calculation didn't correctly align the board base address if Z2 RAM size was less than Z2 gfx board size.
- Implemented no-hack Z3 memory mapping, lets OS handle Z3 autoconfig without patching base addressess from >=0x40000000 to >=0x10000000. This mode is not JIT Direct compatible. Option in Memory panel. Do not enable unless you know what are you doing and you really need 100% matching real hardware Z3 address mapping.
- Use no-hack Z3 allocation automatically if all configured boards fit in official Z3 space, fully JIT Direct compatible. Requires 64-bit Windows and available space will be about 300M to 500M. RAM panel text string shows free space. 32-bit Chip RAM does not count, it is not Z3 board and it is always located at 0x10000000.
- Added 384M and 768M 32-bit Chip RAM size options. (768M fits perfectly at 0x10000000-0x3fffffff)
- Added Z3 autoconfig advanced chipset option. If ticked (or A3000/A3000T/A4000/A4000T chipset extra selected), Z33 boards will now appear at Z3 autoconfig space (0xFF000000), previously Z2 space was always used. Z2 space is supported by AOS but most real, but not all, Z3 boards use Z3 space. Optional because not all KS ROMs (for example A1200) support Z3 autoconfig space but do support Z3 boards.
- Try to keep number of cylinders under 65536 when generating default geometry even if partition hardfile is very large (>100G) for better old AOS compatibility. (Helps my big partition PFS3 testing..)
- Hardware (Cirrus Logic) RTG board emulation incorrectly required UAE boot ROM.
- 68030 MMU update from Previous, fixes some supervisor/write protect edge cases.
- Added "history" menu to filesystem, hardfile and tape path selection text boxes.
- Added portable mode (.ini) on/off state to Paths panel. Read-only, enabling it on the fly would cause all kinds of side-effects. Unsupported warning removed.
Inne treści związane z tematem
[AMIGA] Winuae 3.4.0 beta 10
Kolejna wersja testowa emulatora AMIGI - WinUAE. Toni W, dodaje emulację dwóch rozszerzeń sprzętowych dla A2000/A3000 - OpalVision i jego prostszego odpowiednika ColorBurst.
[AMIGA] Winuae 3.4.0 beta 11
Kolejna wersja testowa emulatora AMIGI - WinUAE. Tym razem poprawki w emulacji GenLocka, ciekawe ile osób wie do czego służyło to cudeńko.
[AMIGA] Winuae 3.4.0 beta 12
Kolejna wersja testowa emulatora AMIGI - WinUAE. Dalej Genlock i karty sieciowe (dla ignoranta, który uznaje tylko A500 - czarna magia).