16.Jul.2016
Rupert Hausberger (ANF)
|
Javascript: Scripted Amiga Emulator 0.9.0
Rupert Hausbergers "Scripted Amiga Emulator" ist in Javascript und HTML5 verfasst. Zu den vielen Änderungen in der Version 0.9.0 zählen die Verwendbarkeit von Amiga-Forever-ROMs, die Emulation eines 68020/68030-Prozessors und des AGA-Chipsatzes sowie die Unterstützung von HDF- bzw. Extended-ADF-Dateien und der Mac-Emulatoren ShapeShifter und A-Max.
Features:
- Models
- A1000/A1000-Velvet (new)
- A500/A2000
- A500+
- A600 (new)
- A1200 (new)
- A3000 (partial, new)
- A4000/030 (partial, new)
- CPUs
- 68000
- 68010 (new)
- 68020/68030 (new)
- 32-bit support.
- Cache support.
- Prefetch support.
- Variable speeds.
- Chipset
- Original-Chip-Set (OCS)
- A1000-Agnus (8361 PAL, 8367 NTSC) emulation. (new)
- Enhanced-Chip-Set (ECS)
- Partial (Agnus/Denise only) or full emulation. (new)
- Advanced Graphics Architecture. (AGA) (new)
- PAL/NTSC-regions.
- Sprites-only or full collision-detection.
- Full blitter support.
- Full copper support.
- Full gayle support (A600/A1200) (new)
- Real-Time-Clock (RTC) types
- Complex-Interlace-Adapter (CIA):
- Different Time-Of-Day (TOD) sources. (Vertical Sync/Power Supply) (new)
- ROM overlay emulation. (maps ROM from e.g. 0xf80000 to 0x000000 at reset) (new)
- A1000 Velvet prototype CIA (6526) emulation. (new)
- RAM
- 256-2048K Chip-ram. (0x000000)
- Up to 1536K Slow-/Bogo-ram. (0xC00000)
- Up to 64M onboard Fast-ram for A3000/A4000. (new)
- Up to 8M Zorro2 expansion Fast-ram. (0x200000)
- Up to 8M Zorro3 Chip-ram. (new)
- Up to 1024M (1G) Zorro3 expansion Fast-ram. (new)
- 512K Chip-/512K Bogo-ram to 1024K Chip-ram aliasing. (new)
- 24-/32-bit support. (32-bit memory is required for original A3000/4000-roms and emulation) (new)
- ROM
- All kinds of standard and extended kickstart roms.
- Support for encrypted Cloanto-roms. (Amiga Forever) (new)
- Special A1000 kickstart handling. (new)
- ROM-patcher, which does remove unneeded resident libraries. (new)
- ROM-mirroring. (mirrors ROM to 0xA80000 or 0xE00000) (new)
- ShapeShifter-support. (new)
- AMAX-support. (Mac emulator) (new)
- ROM-info from internal database. (new)
- Floppy
- Supported diskimage-types
- Standard ADF, read/write (*.adf)
- Extended ADF (EXT1/EXT2), read/write (*.adf) (new)
- PCDOS, read/write (*.img) (new)
- DMS (DiskMasher), read only (*.dms) (new)
- SCP (SuperCardPro), read-only (*.scp) (new)
- EXE, read-only (*.exe) (new)
- Up to 4 Double-/High-density drives. (DF0-DF3)
- Variable drive-speeds. (Original-Turbo).
- Drives are write-protectable. (new)
- Diskimage creation feature. (new)
- Mount (new)
- Supported hardfile-types
- Standard, read/write (*.hdf)
- Virtual, read/write (*.vhd)
- Up to 4 Onboard-IDE units (IDE0-IDE3) with supported ATA-modes
- PCMCIA-slots, configurable as
- Units are write-protectable.
- Video
- HTML5 WegGL- or Canvas2D-rendering.
- 2/4 bits-per-pixel modes. (new)
- Lores-/Hires-/Superhires-types.
- Doublescan-types.
- Frameskip. (renders every 2nd frame only)
- Centering. (new)
- Audio
- HTML5 WegAudio-processing.
- Samplerates from 11025-48000 Hz.
- Mono or Stereo.
- Lowpass filter for A500/A1200. (A1200 new)
- Variable Stereo-channel separation. (new)
- Different interpolation modes (Anti, RH, Crux) (Anti new)
- Ports
- HTML5 mouse-position and buttons import.
- HTML5 keyboard import.
- Joystick emulation via keyboard.
- Mapping of some special keys for pinball-games.
- Serial-port. (output to developer-console)
Changes in version 0.9.0 (15.07.2016)
- CPU
- Completely rewrote the core.
- Added support for the 68010. (5 instructions, 3 registers)
- Added support for the 68020. (27 instructions, 2 registers)
- Added support for the 68030. (4 instructions)
- Exploded each instruction to it's own size-form and sometimes additionally to it's type form.
- For faster access, each instruction does now have it's customized parameter-object.
- Effective-address access and decoding are now done via 6+1 highspeed function-tables, each 64 entries long.
This does save up to 12 (3*2*2) switch statements per instruction.
- Condition-code checking is now done via a 16 entries long function-table instead of a switch-function with 16 entries.
- Optimized condition-code calculations.
- Fixed/removed DIVU-remainder calculation, also new and faster DIVS.
- New and faster versions of ABCD, NBCD, SBCD, ASL, ASR, LSL, LSR, ROL, ROXL, ROR, ROXR.
- Fixed MOVEP instruction.
- Fixed all 68000/68010 execution-time calculations.
- Program-counter calculations are not hardcoded any more.
- Ported high-level functions from actual WinUAE.
- General
- Re-ported and optimized the following parts from actual WinUAE:
Audio, Blitter, CIA, Config, Copper, CPU-highlevel, Custom, Disk, Drawing, Events,
Expansion, Filesys, Gayle, Hardfile, IDE, Memory, Roms, Playfield, RTC and Serial
- Chipset
- Custom-chip registers are now accessed via a 256 entries long function-table instead of a switch-function with 256 entries.
- Added support for the A1000-Agnus.
- CIA
- Added support for different TOD sources.
- Added support for ROM overlay.
- Added support for A1000 Velvet prototype.
- Blitter
- Minterms are now calculated via a 256 entries long function-table instead of a switch-function with 256 entries.
- RAM
- Added Zorro3 and 32bit support.
- Added support for chip-/bogo-ram aliasing.
- Access is now done via function-tables (banks) instead of area-selecting switch-functions.
- ROM
- Added support for encrypted Cloanto-roms. (Amiga Forever)
- Added special A1000 kickstart handling.
- Added ROM-patcher, which does remove unneeded resident libraries.
- Added support for ROM-mirroring.
- Added ShapeShifter-support.
- Added a ROM-info page.
- Updated AROS-ROMs to actual version SVN52764.
- Floppy
- Added 3.5" DD ESCOM and 3.5" DD/HD PC only drive-types.
- Added support for the diskspare-format.
- Added support for PCDOS-images.
- Added support for DMS-images. (DiskMasher)
- Added support for SCP-images. (SuperCardPro)
- Added support for EXE-images.
- Disk can now be inserted from the database.
- Drives are now write-protectable.
- Added a disk-info page.
- Mount
- Added support for hardfiles. (*.hdf/*.vhd)
- Added support for Onboard-IDE (A600/A1200)
- Added support for PCMCIA-slots (A600/A1200)
- Units are write-protectable.
- Playfield
- Added AGA-support.
- Added support for 16 bits-per-pixel (R5G6B5) rendering.
- Got rid of an internal temp-buffer. So in WebGL-mode, we render to the texture directly now.
- Added options for video-centering.
- Video
- The output-driver is now selectable.
- Added support and options for brightness, contrast and gamma.
- Added alpha-channel support.
- Added line-change indicator. (debug)
- Audio
- Added "Anti"-samplehandler.
- Added A1200 lowpass-filter.
- Added support for stereo-channel separation.
- Rewrote handling of WebAudio-stuff.
- Events
- If supported by the browser, timing-functions does use performance.now() instead of Date.now(),
which increases the precision by the factor of 1000.
- Optimized switching between pause/run. Thanks 'majcherek2048'.
- Input
- Added distinction between left/right shift/alt keys. The config-entry "Map L/R-Shift to L/R-Arrows" is gone.
- Config
- Completely reworked the advanced config page.
- Changed all SAEV_Config_* to SAEC_Config_* to match the new namespace. Sorry for that :/
- Many new options. Not listed here, see sae/config.js for details.
- API
- Deprecated and removed the old API function "SAE()". We're on javascript, so let's use: (new API)
"var sae = new ScriptedAmigaEmulator(); [...] var error = sae.start(); [...]" See index.js for details.
- Reworked error-handling for API-calls. Now an error-code (SAEE_*) is returned on any API-call.
- Common
- Introduced global functions, references, variables and constants for more speed. See sae/amiga.js for details.
- Moved all entries from constants.js to their specific place and renamed them to match the new global name-space.
- Updated asynchronous file-transfers to latest standards.
- Added proper GPL-header to the source-files.
- Moved the "Your game and demo..."-section from the main-site to the readme.
- Fixed linkage to contributors websites.
- Added SAE-specific-links to the info-box in the main-page.
- Added an disassembler tool.
"var sda = new ScriptedDisAssembler(); [...] var result = sda.disassemble();" See disass.js for details.
(snx)
[Meldung: 16. Jul. 2016, 05:25] [Kommentare: 5 - 18. Jul. 2016, 13:27]
[Per E-Mail versenden] [Druck-Version] [ASCII-Version]
|