Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

#82 Support for multiple SVGA chipsets

open
c2woody
None
5
2015-01-25
2005-04-28
Vasyl Tsvirkunov
No

This patch adds basic support for Tseng ET3000 and
Tseng ET4000 SVGA chipset. It also allows to run DOSBox
in "pure VGA" mode with no detectable SVGA hardware.
This implementation is rather incomplete but both new
chipsets pass detection, correctly configure banked
memory, support proper video modes. Some demos that
require high register-level compatibility will not work
but simpler apps seem to work fine. Tested with Deluxe
Paint IIe (of particular interest is Gallery app that
does not support S3 or VESA, it only supports
ET3000), multiple Legend Entertainment games.
Chipset is configurable in dosbox.conf. New section has
been added:

[vga]

svgachipset=none

svgachipset=tseng et3000

svgachipset=tseng et4000

svgachipset=s3 trio64

videoram=512

If this section is missing or incomplete, S3 is
selected (identical to the current functionality).
videoram setting is currently supported only for ET4000
(ET3000 had very quirky implementation and I did not
want to break S3 just yet).

Disclaimers:
1. I haven't submitted any patches to SF for quite a
long time, my skills in that respect are rusty. If I
messed up, just let me know.
2. I only used VC.NET configuration for all testing. It
should build with GCC but there is no 100% guarantee
until somebody tests it. I haven't try to fix VC6 --
that config seems to be pretty broken right now.
3. The diff is made against daily CVS drop 20050427. It
may not work against later drops.

Questions, comments:
in forum or vasyl [at] pacbell [dot] net

Discussion

1 2 3 > >> (Page 1 of 3)
  • `Moe`
    `Moe`
    2005-05-30

    Logged In: YES
    user_id=1045474

    Just FYI: it compiles fine on linux. Wasn't able to test it
    thoroughly, I was just curious if win95's driver can use it
    (it can't), but I don't care - I don't need win95, was just
    curious and bored.

     
  • Logged In: YES
    user_id=352450

    Refresh/update for the patch.
    Changes:
    - Refreshed the patch against current CVS (5/31/2005);
    - Fixed a few bugs in vga_memory.cpp. Dawn Patrol works on
    ET4000 straight out of the box;
    - Streamlined modular implementation, separated Tseng
    chipsets into their own file, etc.
    - Integrated patch 1198821 (setmode/crtc corrections).

    Hopefully, I did not break much. Still did not figure out
    Virtual Pool, will work on that and on the basic Paradise
    driver next (test case -- Wonderland by Magnetic Scrolls).

     
  • Logged In: YES
    user_id=352450

    Another update - important enough that I've decided to post
    it immediately. Fixes major bug that was in both previous
    patches that prevented Virtual Pool from working. Virtual
    Pool is completely playable in 640x480 with Tseng ET4000.

     
  • Logged In: YES
    user_id=352450

    Oops, got wrong vcproj file in the last update. Fixed. Use
    version 20050601a.

     
  • Logged In: YES
    user_id=352450

    Another important update. Changes:
    - Refreshed to the current CVS state.
    - Added Paradise PVGA1A card (use "svgachipset=paradise
    pvga1a" or just "svgachipset=pvga1a" - see below). The
    emulation is very simple but the card itself if very basic.
    Wonderland by Magnetic Scrolls works in SVGA mode now.
    - Cleaned up Tseng emulation source code. No new
    functionality to speak about but the source is smaller and
    easier to maintain. Verified a few items against Ferraro's
    book; VGADOC can get too detailed on occasions.
    - Improved .conf file handling. Now it is enough to write
    just the chipset name (et3000/et4000/pvga1a/trio64/none); it
    is also case-insensitive. "svgachipset" handling is
    essentially moved to drivers.

     
  • Logged In: YES
    user_id=352450

    Another little oops. Missed one file in the last diff.
    Fixed. Version 20050702a is correct.

     
  • Logged In: YES
    user_id=352450

    Fixed performance issue with debugger-enabled builds.
    Special thanks to ykhwong for finding and reporting this
    problem.

     
  • Logged In: YES
    user_id=352450

    Another round of polishing. The last fix was incomplete.
    Version 20050704 should be better.
    I am also removing obsolete versions, there is no point in
    keeping them here.

     
  • Logged In: YES
    user_id=352450

    Refresh against current CVS state (just after midnight
    7/15). Otherwise nothing new.

     
  • Logged In: YES
    user_id=352450

    Refresh agains current CVS (after midnight 7/31, PST).
    Crossing my fingers as there were a few collisions.

     
  • Logged In: YES
    user_id=352450

    Yet another CVS refresh (7/31, ~8pm PST). The previous
    version is removed to reduce clutter.

     
  • Logged In: YES
    user_id=120905

    what I miss is that the patches don't enter the information
    needed for when you do "config -writeconf dosbox.conf".
    It now only writes:
    [vga]

    Message not Found!

    svgachipset=s3 trio64
    videoram=2048

    Otherwise the patch works nicely along with running Windows
    3.11 in SVGA :)

     
  • Logged In: YES
    user_id=352450

    New version, fixes broken colors in Floor 13. That was a
    regression in vga_attr.cpp.
    Added config message as well.

     
  • Logged In: YES
    user_id=352450

    Another update. Fixed hi-res 16-color modes in all drivers
    that support it. All "SuperEGA" modes that used more than
    512K and/or banking were not working properly before. Test
    cases: Win3, DPaint.

     
  • Logged In: YES
    user_id=352450

    CVS refresh -- collided on dosbox.cpp.

     
  • Logged In: YES
    user_id=352450

    Big update this time. What's new:
    - Video memory is allocated in runtime according to emulated
    video chipset needs;
    - Corrected banked memory accesses in vga_memory so all
    modes in whatvga work now;
    - Fixed use of extended overflow registers for all chipsets;
    - Added a few more modes to Tseng driver. Win3.1 now works
    in 1280x1024x16;
    - Fixed a few bugs found along the way.
    The patch is current to CVS 8/14 around midnight.

     
  • Logged In: YES
    user_id=352450

    Another important update. What's new:
    - Implemented video memory address wrapping. This fixes a
    lot of potential and real crashes, makes some games working
    (New Age Warrior working with et4000 and none). In future we
    will need this mechanism to fix a few issues with S3 emulation;
    - Added chipset selection/vram size via command line, for
    convenience;
    - Added another version of Tseng ET4000 driver (et4000new),
    the only difference is a few hi-res video modes. Had to do
    this to accomodate stupid bug in TLIVESA1.
    The patch is current as of 8/22 around 10pm PST.

     
  • Logged In: YES
    user_id=352450

    More improvements. What's new:
    - Fixed minor visual glitch/bug in vga_draw;
    - Enforced 64K wrapping in chain4 VGA (but not SVGA) modes.
    Fixes all VGA scrollers I've tried with all emulated chipsets.

     
  • Logged In: YES
    user_id=352450

    CVS refresh, current with CVS as of 9/5. No major changes
    except one in PVGA1A emulation: added chipset signature in
    ROM, this significantly improves chipset identification in
    different games.
    Removing some older versions to reduce clutter.

     
  • Logged In: YES
    user_id=352450

    CVS refresh, current with CVS as of 9/18. The "setmode/crtc"
    patch finally got its way to CVS so this patch is slightly
    smaller.
    Also, improved mode type detection for non-S3 SVGA chipsets
    in a manner similar to the updated base implementation.
    Removing obsolete versions.

     
  • Logged In: YES
    user_id=352450

    Another update -- missed one line during the last merge.
    Apparently, c2woody fixed a little issue in setmode/crtc
    patch related to mode 6.

     
  • Logged In: YES
    user_id=352450

    Updated the patch to make sure it works with current CVS
    (int10_modes.cpp got recently changed).

     
  • Logged In: YES
    user_id=352450

    Missed a couple lines during the last merge, updating again.

     
  • Logged In: YES
    user_id=352450

    Update to match the current CVS state.

     
  • Logged In: YES
    user_id=352450

    CVS refresh. Also fixed a stupid bug that could go unnoticed
    for ages (disabled extended sequencer registers in S3).

     
1 2 3 > >> (Page 1 of 3)