2011-08-07

Atari800 SVN r2083

EmuCR: Atari800Atari800 SVN r2083 is released. Atari800 is an Atari 800, 800XL, 130XE and 5200 emulator for Unix, Amiga, MS-DOS, Atari TT/Falcon, SDL and WinCE.

Atari800 SVN Changelog:
2011-08-05 Tomasz Krasuski
* DOS/cart.txt, DOC/USAGE, cartridge.[ch], ui.c: Added support for the
Blizzard-type 4KB cartridge (which contains a 2732 EPROM inside).


2011-07-23 Kostas Nakos
* atari.c: Use FPS defines in autoframeskip
* android/*: Fix a nasty bug, when orientation was changed during the
preferences activity,
added shadow rectangle around console keys overlay


2011-07-02 Tomasz Krasuski
* cartridge.[ch], ui.c, atari800.man, DOC/cart.txt, DOC/USAGE: Added support
for the OSS 043M cartridge format. The old 034M format is marked as obsolete
but still supported. Renamed the OSS cartridge formats to include
information on number of ROM chips (043M/034M - two chip, M091 - one chip).


2011-06-27 Tomasz Krasuski
* cassette.c: Fixed a bug with eof_of_tape not always being set to 1 when it
should be, f.e. after a call to CASSETTE_Seek(). When the SIO patch was
enabled and the tape was Seek'ed past the last block, this could result in
a call to CASSETTE_IOLineStatus() while CASSETTE_current_block was higher
than CASSETTE_max_block. This in turn would cause division by 0 (due to
reading an uninitialilsed value from cassette_baudblock).
Now eof_of_tape is set properly after every change of either
CASSETTE_current_block or CASSETTE_max_block, so a dangerous call to
CASSETTE_IOLineStatus doesn't happen anymore.

* cartridge.c: Fixed a bug introduced in rev. 1.48: CARTRIDGE_StateRead would
try to read the cartridge's bank state even if the cartridge was not
present; thus the whole state reading would fail.

* afile.c: Support selecting cartridge type when loading a cartridge by Alt+R.


2011-06-21 Tomasz Krasuski
* ui.c: Fixed a segfault when opening the "Fullscreen resolution" submenu.
This was caused by the change in ui.h on 06-20. (reported by Krzysztof
Karkosza)


2011-06-20 Tomasz Krasuski
* sdl/input.c: Fixed a bug with F10 creating interlaced screenshots instead of
non-interlaced.

* cartridge.[ch], ui.c, atari800.man, DOC/USAGE: Ported from Atari800WinPLus -
an option for enabling/disabling automatic reboot when the cartridge is
inserted or removed. (Only applies to the main cartridge. After inserting or
removing a piggyback cartridge, it works as earlier - ie. the system will
not reboot automatically.)

* ui.h, ui_basic.c: Reworked detection of menu end (UI_MENU_END). The
previous solution stopped working correctly since in the CartManagement menu
there are hidden menuitems with the "item" field set to NULL which would be
incorrectly detected as end of menu.


2011-06-17 Tomasz Krasuski
* cartridge.c, DOC/cart.txt: Reverted the last change in the 034M mapping
regarding switched banks 1 and 2 - on second thought, applying such change
to a years-old specification without proper discussion is not a good idea.


2011-06-16 Tomasz Krasuski
*cartridge.c, DOC/cart.txt: Fixed an ages-old bug in the OSS 034M cartridge
banking scheme. Banks 1 and 2 were switched, which caused all known OSS
034M dumps to fail. (There actually are only 3 known images of 034M
cartridges:
Action! 3.5: http://ftp.pigwa.net/stuff/collections/atari_forever/ROM/ACTION.OSS/ACTION.OSS
BASIC XL 1.02: http://ftp.pigwa.net/stuff/collections/atari_forever/ROM/BASICXL.OSS/BXL102.OSS
MAC/65 1.0: http://ftp.pigwa.net/stuff/collections/atari_forever/ROM/MAC65.OSS/MAC65.OSS
All failed to work before this fix.)
Additionally the combinations $D5x1 and $D5x5 were incorrectly described as
working - I've changed it to more closely reflect the reality (the
combinations cause selection of 2 banks simultaneously - but it's still not
emulated 100% exactly).

* cartridge.[ch], atari.c, ui.c: Moved the logic that auto-switches machine
type after insertion of a cartridge. Now it resides in cartridge.c, where it
belongs. Introduced new function CARTRIDGE_SetType, that should be used to
change the cartridge's type. CARTRIDGE_IsFor5200 and CARTRIDGE_Start are not
used outside cartridge.c anymore, so I renamed them and made static.


2011-06-13 Tomasz Krasuski
* cartridge.[ch]: Major rewrite, required to fix bugs in piggyback cartridge
emulation and with writing/reading savestates with banked cartridges.
1. SDX piggyback emulation was broken and apparently written without knowing
the cartridge's specs - the SDX cart only reacts to access to address
$D5Ex (also $D5Fx in case of the 128K version).
2. A piggyback cartridge reacts to access to page $D5 even if it is disabled
by the SDX cart. So when processing a read/write to page $D5 both mounted
cartridges must be bank-switched.
3. A cartridge reacts to page $D5 even if there's an R-Time or
IDE hardware installed.
3. In savestates the bankswitched cartridge's current state was not stored,
and in some cases such savestates didn't work properly when loaded.
4. Overall code cleanup - introduced the CARTRIDGE_image_t structure for
clarity.

* gtia.[ch], statesav.c, cartridge.[ch] (CARTRIDGE_StateRead)
(CARTRIDGE_StateSave): GTIA needs to store its trigger latches in the
savestate in order to properly restore after loading a savestate with
a banked cartridge. Banked cartridge's current state must also be stored in
a savestate. Both changes require bumping up the savestate version number.

* atari.c, ui.c: Apply the new API of cartridge.h.

* DOC/cart.txt: Update the SpartaDOS X sections with info about piggyback
cartridges.

* atari.c, cartridge.[ch] (CARTRIDGE_Initialise): Move code for processing
cartridge-related commandline optins to cartridge.c.

* cartridge.c, atari800.man, DOC/USAGE: Add -cart-type and -cart2-type
options, that allow to choose cartridge type from commandline.

* cartridge.c (CARTRIDGE_ReadConfig, CARTRIDGE_WriteConfig), cfg.c: Support
loading and saving of the cartridge settings in the config file.

* cartridge.[ch], ui.c, atari800.man, DOC/cart.txt DOC/USAGE: Add support for
the OSS The Writer's Tool cartridge mapping.


2011-06-08 Tomasz Krasuski
* ui_basic.c: Allow opening up the file selector when the given PATH is
invalid. When a diskette image is mounted, its path is cached in the
emulator. If, in the meantime, the path to that file have become invalid
(e.g. the directory in which the file resided have been deleted), then
reopening the file selector for that particular diskette would have failed.

* cartridge.c: Unify duplicate code in CARTRIDGE_Insert and
CARTRIDGE_Insert_Second.


2011-06-05 Kostas Nakos
* android/*: Implement extended key remapping,
Support Xperia play keycodes,
Remap dpad enter to break,
New NTSC/PAL tv mode preference


2011-05-22 Tomasz Krasuski
* DOC/USAGE, atari800.man, cassette.[ch], ui.c: Add an option for making the
attached cassette image read-only.

* cassette.[ch]: Cleanup - rearrange function order to place the functions
related to the SIO patch together at the bottom of the files.

* cartridge.[ch], ui.c: Merge "Insert Cartridge"/"Remove Cartridge" menu
options into one, to make it consistent with other file-selectors in the
menu (ie. display filename, Enter=Insert, BkSp=Remove). Ditto for the
"Insert|Remove SDX Piggyback Cartridge" options.

* ui.c: Don't leave the "Cartridge Management" menu after inserting/removing
a cartridge. The behaviour was inconsistent with other menus.

* screen.c: Minor fix - missing "else" in Screen_Initialise().


2011-05-21 Tomasz Krasuski
* sio.c: Fixed a bug with SIO sounds remaining audible after saving to tape
with SIO patch (reported by Krzysztof Karkosza).

* atari.c: During coldstart, don't automatically hold Option on non-XL/XE
machines. This fixes unwanted keystrokes when running cartridges on 400/800
with the "Disable Basic" option. Also, don't hold Start on booting the 5200.

* memory.c: Bugfix: When "Selecting System" and choosing 800/48KB RAM twice
in a row, BASIC would get disabled even if the "Disable BASIC" option was
set to "No". This was caused by missing initialisation of cartridge memory
in MEMORY_InitialiseMachine().


2011-05-18 Tomasz Krasuski
* cassette.c: Fixed a bug with CASSETTE_description not being properly ended
with '\0' when tape is inserted (reported by Achim Haertel).


2011-05-15 Tomasz Krasuski
* cassette.[ch], pokey.c, sio.c: Improve cassette emulation, to allow loading
some non-standard tapes (e.g. Feud/Turbo 2600, Miecze Valdgira II,
Operation Blood).
Emulation of SERIN was inaccurate - new byte appeared in SERIN only if the
serial input IRQ was enabled, and it happened 2 scanlines after the byte's
transmission has _started_. On a real machine, a byte appears in
SERIN at the same time the serial input IRQ is generated, that is, when
the byte's transmission _ends_; and it happens even when the IRQ is
disabled. The bug caused issues with tapes of _certain_ baudrates (e.g. 577
baud).
Changed the way cassette IRQ is invoked - there is no notion of
"cassette IRQ delay" anymore. Instead, CASSETTE_AddScanLine returns TRUE
on SERIN update.
Added partial emulation of SKCTL reset bits - due to improved SERIN
accuracy proper emulation of serial IO resetting is now needed to load tapes
correctly.


2011-05-09 Tomasz Krasuski
* pia.c: Fixed a bug with PIA's tape motor state and COMMAND line state not
being restored on loading of a savestate.

* screen.c: Display SIO activity for tapes only when a tape image is attached.

* cassette.[ch], sio.c: Fixed a segfault when reading tape blocks longer than
4096 bytes, by dynamically allocationg memory when needed. Blocks loaded
with SIO patch are now copied to Atari memory even when they are too short
or the checksum is wrong - this duplicates the behaviour of the unpatched
system. CASSETTE_buffer no longer used outside cassette.c, so it's made
static.


2011-05-08 Tomasz Krasuski
* atari.c, cassette.[ch], cfg.c, screen.c, sio.c, ui.c: Added support for
switching bettween tape loading/saving without need to re-attach a tape
image. Added a "Tape management" menu with new options for tape rewinding
and creating a blank CAS image. Added loading/saving of the currently
attached tape image in the config file. Without the SIO patch, a user now
must manually switch tape recording on/off if needed. Fixed some bugs and
cleaned the code a bit.

* DOC/directx.txt, atari_curses.c, atari_falcon.c, atari_ps2.c,
dos/atari_vga.c, javanvm/atari_javanvm.c, sdl/input.c, win32/atari_win32.c:
Added the Alt+T shortcut to the new Tape Management menu. The "tilt screen"
in the Win32 port has been remapped to Alt+Shift+Z to avoid conflict.

* DOC/USAGE: Updated the "Cassette operation" section with the new features.

* screen.c: Added displaying of current tape position when sector counter is
enabled. Display a "Dn" symbol instead of "n" during disk operations.

* ui.c: Renamed the "Show disk activity" and "Show sector counter" options to
reflect the fact that they also affect tape operations.


Download: Atari800 SVN r2083
Source: Here

0 Comments

Post a Comment