Happy New Year!
Happy New Year!
Happy New Year! :)
added some safety checks
- added infrastructure for multi-monitor support; only video_x.cpp is converted for the new scheme; not actually tested with a mult-monitor setup yet but at least single-monitor display doesn't seem to be broken (UAE banked addressing would definitely require some extensions to handle multiple frame buffers) - struct video_mode has an extra field that is free for use by platform- specific code
- documentation updates - 2001 -> 2002 - version 0.9 -> 1.0
fixed a couple of compiler warnings
- ADB has its own interrupt flag, INTFLAG_ADB - ADBMouseMoved(), ADBMouseDown/Up() and ADBKeyDown/Up() trigger the ADB interrupt - ADB mutex is only used for mouse movement (the only input state where it matters) - adb.cpp: toggling relative mouse mode resets mouse_x/y - PrimeTime(0) schedules a timer task with 0 delay time; this is still not the correct implementation, but it makes MacSyndicate work... - Unix: pthreads are preferred to POSIX.4 timers for 60Hz ticks because the timers drift badly under Linux and the thread can compensate for drifting well enough - Unix: moved GetTicks_usec() and Delay_usec() to timer_unix.cpp - video_x.cpp: X mouse acceleration is disabled in relative mouse mode because MacOS does its own acceleration - video_x.cpp: palette[].pixel and palette[].flags are always preset - video_x.cpp: decoupled X event handling from 60Hz video refresh cycle by using select() with a timeout on the X fd
some small fixes
- improved compatibility of multiple depth/resolution handling with versions of MacOS before 7.6: - Apple mode IDs are now allocated contiguously from 0x80 (the video_*.cpp module must call video_init_depth_list() after adding all modes) - if the video driver didn't receive a GetVideoParameters call, it patches ScrnBase and the main GDevice upon a video mode switch (otherwise MacOS will continue to use the old frame buffer base) - the rowBytes values in the video parameters slot resources are correct for all bit depths
- video_set_palette() gets passed the number of used palette entries - video_x.cpp supports 2- and 4-bit modes on truecolor screens
- sony.cpp/disk.cpp/cdrom.cpp use vector<> of drive_info objects instead of linked list - color depth switching updates slot ROM - video_x.cpp always supports 1-bit window modes - timer_create()/clock_gettime() are pulled from librt if present
fixed compilation problems on BeOS/ppc
- added some documentation - VidLocal.sp -> VidLocal.slot_param - X11 color map is loaded with ramp upon startup to avoid the annoying black screen during initialization
gamma tables work with X11
- experimental gamma table support - restructured video_x.cpp: uses classes for display types
slot ROM checksum is recalculated after patching during resolution switch
vector<> is in namespace std
video_x.cpp supports resolution switching in windowed mode: the available resolutions are 512x384, 640x480, 800x600, 1024x768 and 1280x1024 (the prefs editor has to be updated to reflect this). The resolution selected in the prefs editor is used as the default, but it can be changed in the Monitors control panel. So far only tested with direct addressing.
depth/resolution switching infrastructure should be complete now; slot ROM contains all supported depths, default mode is stored in XPRAM upon startup, and added video_switch_to_mode() call (currently unimplemented in all drivers)
added infrastructure for resolution/depth switching (currently, all video drivers only support one mode, the one selected by the user)
small cleanup
- bumped version number to 0.9 - updated copyright dates
- fixed compilation problem under Linux - TriggerNMI() declaration moved to cpu_emulation.h
added MacsBug Support -jl-
- new FOURCC() macro in macos_util.h
- updated copyright info: 1999->2000
- now compiles with GCC under AmigaOS
Imported sources
Initial revision
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.