core: Fix libdwarf and Qt build failure
[clinton/Virtual-Jaguar-Rx.git] / docs / WHATSNEW
1 Virtual Jaguar v2.1.3 R5 GCC/Qt
2 -------------------------------
4 * Specific breakpoints for the M68000 "illegal instruction", "address error", "bus error", "Unimplemented instruction", and "Exception not referenced" exceptions
5 * Specific breakpoints will occur in case of a rom writes at an unknown location
6 * Added a HW registers browser window for the Blitter
7 * Fixes for the Linux platform from @richard42
8 * Stability & improvements for the debugger mode
9 - ELF & DWARF information support improvements
10 - Modified the call stack layout window
11 - Added a search feature in the All Watch global variables window
12 - Added a video output display in a specific window
13 - Show the SR value as a readable form in the M68000 CPU browser
14 - Added a tracing, step in and step over, at source code level
15 - Added a source code file date check when reading DWARF information
16 - Support the structure's members in the Local variables window
17 - Improvements for the two Breakpoints windows
18 - Added two M68000 cycles counters in the status window
21 Virtual Jaguar v2.1.3 R4 GCC/Qt
22 -------------------------------
24 * Fixed a crash legacy issue when emulator launches in Alpine mode without a valid rom
25 * Stability improvements for the DWARF information decoding, the all watch, and the debugger memory windows
26 * Improvements and fixes for the Heap allocation, the Alpine tab, the emulator status, Local & all Watch variables windows
27 * Debugger mode improvements, better source code file reading and ELF/DWARF structures decoding
28 * Breakpoint / alert box may now occur in case of writing at unknown memory location or in case of ROM writing
29 * UI modifications mostly for the debugger mode, key bindings, and icons
30 * Added screenshot & call stack window features, Jaguar model & BIOS configurations, and a source code files list viewer
31 * Added multiple breakpoints feature but only for M68000 functions
32 * Added a Save Dump As... feature to save a memory zone to a file
33 * Added a cartdridge view menu to display cartdridge directory system and his files list
34 * Added some log information for the emulator initialisations
35 * Added search paths in case of missing DWARF directories information
36 * Added ELF sections check so a potential unknown section will stop, or not stop, the ELF structure decoding
37 * Minor misspellings fixes and text help update
38 * The -d command line option, dedicated to the debugger, has been renamed with -D
39 * Updates for the setup registries
42 Virtual Jaguar v2.1.3 R3 GCC/Qt
43 -------------------------------
45 * Added an Exception Vector Table browser window
46 * Modified the About window to update the credits list in a more appropriate way
47 * Fixed a crash when reading the DWARF information in the case of the DWARF2 format has not been used
48 * Added ui, alpine & debugger groups in the settings
49 * Added the possibility to erase settings
50 * Added the --es-all, --es-ui, --es-alpine & --es-debugger options to erase specific settings
51 * Added a key bindings tab and adapted the configuration dialog tabs
52 * Fixed a crash, in Release mode, when the HW labels setting is turn on
53 * Fixed the SP (Stack) window UI potential missing data
54 * Create a directory for EEPROMs (based on the EEPROMs setting) if it doesn't already exist
55 * Keep the scrollbar position in accordance of the M68000 PC pointer
56 * Fixed a crash when DWARF information report a source line number exceeding the number of lines present in a source file
57 * Improved the .heap section detection to avoid a detection error
58 * Fixed a crash when DWARF information does references to missing source code files
59 * Added a Local browser window for local variables
62 Virtual Jaguar v2.1.3 R2 GCC/Qt
63 -------------------------------
65 * Added some error detections when reading the ELF executable file
66 * Added all hardware labels (based on the document scans from the Version 2.4 - June 7, 1995)
67 * "Step Over" code function for BSR/JSR functions
68 * Added the .debug_ranges detection to avoid a detection error
69 * DWARF format support
70 * Added an All Watch browser window for non-local variables
71 * Added a heap allocator browser window based on my own memory allocation functions
72 * Added additional 4 memory browser windows with address input based on hexa, decimal or symbol name
73 * Windows refreshing executed only if windows is visible
74 * Added a restart function
75 * Updated the About window to update the credits list
76 * Fixed (hacking) the display of the SP (Stack) memory browser
77 * Set the emulator in Halt mode when launched in alpine debug mode without a loaded rom
78 * Added some information in the --help/-h/-? option
79 * --debugger option no longer force the log file
80 * Added a --dram-max option to extend the DRAM size to 8MB
81 * Added the "enter" key support when setting the BPM (Breapoint)
82 * Save the windows positions, size and visibilities (show or hide) status
85 Virtual Jaguar v2.1.3 R1 GCC/Qt
86 -------------------------------
88 * BPM (Breapoint) now stop at the designated address and no longer stop after executing the code
89 * Added SP (Stack) memory browser
90 * User can change now the number of lines of disassembly displayed in the tracing window
91 * User can turn on/off the op-codes associated in the disassembly lines displayed in the M68000 tracing window
92 * Added an emulator status window (GPU status, M68000 debugger & tracking status)
93 * Added a GPU disassembly tracing window - Display the current PC pointer
94 * Added a DSP disassembly tracing window - Display the current PC pointer
95 * Added possibility to change refresh rate of browser windows when emulation is launched
96 * Display partial hardware labels (Internal Memory & Graphics sub-system address space) in the disassembly lines displayed in the M68000 tracing window
97 * User can turn on/off the hardware labels associated in the disassembly lines displayed in the M68000 tracing window
100 Virtual Jaguar v2.1.3 R0 GCC/Qt
101 -------------------------------
103 * New option --debugger
104 * ELF format support
105 * ELF debug symbol support
106 * "Step Into" code function
107 * Menus layout dedicated to the debugger
108 * Added a dedicated main window for tracing (M68000)
109 * Added a Debugger tab in the config tab
112 Virtual Jaguar v2.1.3 GCC/Qt
113 ----------------------------
115 * Added interlaced mode handling. [Shamus]
118 Virtual Jaguar v2.1.2 GCC/Qt
119 ----------------------------
121 * Bugfix for catastrophic failure in Controller config dialog. Thanks to ggn for
122 reporting this! [Shamus]
123 * Bugfix for non-English locales. Thanks to SCPCD for reporting! [Shamus]
126 Virtual Jaguar v2.1.1 GCC/Qt
127 ----------------------------
129 * Added controller profiles. What this means is that if you left your gamepad
130 behind and/or have a different one, VJ will let you create a controller
131 config for the new controller without destroying the old one. This also means
132 that if you have *no* controllers, you can still play VJ with the keyboard.
133 [Shamus]
134 * Fixed a few problems with the DSP timing; as a result, the sound in Rayman
135 and the FACTS demo is correct now. [Shamus]
136 * Removed toolbar from full screen mode. [Shamus]
137 * Added analog inputs to gamepad support. [Shamus]
138 * Fixed 6MB cartridge space access limitation. 6MB carts should work now.
139 [Shamus]
140 * Fixed problem with JERRY interrupts corrupting the M68K core. [Shamus]
143 Virtual Jaguar v2.1.0 GCC/Qt
144 ----------------------------
146 * Added gamepad support. [Shamus]
147 * Added fullscreen option. [Shamus]
148 * Added some more developer goodies to Alpine mode. [Shamus]
149 * Re-added command line switches. [Shamus]
150 * Moved JERRY into host audio IRQ. This should make sound much smoother, though
151 it may run ahead of the rest of the emulator. [Shamus]
152 * Kludged a fix into the audio handler to set the correct frequency for audio
153 playback. Note that there could still be problems with this approach, as it
154 can be easily fooled. Thanks to Dr. Typo for the initial analysis and insight
155 into this bug. :-) [Shamus]
156 * Preliminary fixes for proper emulation of memory reads between $200000 and
157 $800000. [Shamus]
158 * Proper handling in the OP of objects with 0 IWIDTH. [Shamus]
161 Virtual Jaguar v2.0.2 GCC/Qt
162 ----------------------------
164 * Fixed problem on OP with 24BPP bitmaps. [Shamus]
165 * Cosmetic GUI fixes. [Shamus]
166 * Switched to UAE 68000 CPU core. [Shamus]
167 * Fixed some RISC STORE and LOAD alignment issues. Still need to verify against
168 real hardware. [Shamus]
169 * Fixed video frame timing for both NTSC *and* PAL. [Shamus]
170 * Improved OP logging, added emulation of OP bug. [Shamus]
171 * Fixed addressing bug with UAE 68000 core. [Shamus]
174 Virtual Jaguar v2.0.1 GCC/Qt
175 ----------------------------
177 * Fixed NTSC timings; they were hardwired to PAL rates. [Shamus]
178 * Fixed possible missing trailing slash on path fields input by user. [Shamus]
179 * Fixed exit hotkey to work on Win32. [Shamus]
180 * Changed PAL/NTSC switch to only work when virtual machine is powered off.
181 [Shamus]
182 * Miscellaneous documentation fixes. [Shamus]
185 Virtual Jaguar v2.0.0 GCC/Qt
186 ----------------------------
188 * Switched GUI to Qt. And there was much rejoicing. ;-) [Shamus]
189 * Added detection code to fish out files from inside ZIP archives. What this
190 means is that now you can have other goodies inside of your ROM ZIP like
191 labels, box art, and overlays. See built-in help for details. [Shamus]
192 * Various usability improvements, too many to list here. ;-) [Shamus]
193 * Various compatibility improvements to the Jaguar core, too many to list
194 here. ;-) [Shamus]
197 Virtual Jaguar v1.1.0 GCC/SDL (r299 - Never officially released)
198 ----------------------------------------------------------------
200 * Switched OpenGL rendering to 32 BPP. This is not only how a real Jaguar
201 renders graphics, but it also gives VJ a nice speed boost. ;-) [Shamus]
202 * Changed execution to a time-based solution so that timers and IRQs and
203 such can happen when they're supposed to. [Shamus]
204 * Fixed blitter writes so that Intensity[0-3] and Z[0-3] are written in the
205 correct order. [Shamus]
206 * Major rewrite of blitter to conform the the TOM ASIC nets. This should fix a
207 bunch of stuff that wasn't working correctly before. [Shamus]
208 * Fixed writes to 64 bit blitter registers. [Shamus]
209 * Refactored GUI to be more maintainable, better looking and more responsive.
210 [Shamus]
213 Virtual Jaguar v1.0.7 GCC/SDL
214 -----------------------------
216 * Various fixes to make for smoother compilation on MacOS. [Adam Green]
217 * Fixes to filetype parsing. VJ now properly recognizes .abs, .jag, .rom,
218 and .j64 files--be sure to check the README for the gory details! [Shamus]
219 * Added a kludge to allow homebrew demos to run without a Stubulator ROM and
220 without crashing the emulator. [Shamus]
221 * Fixed a blitter intensity addition problem. This fixes the title in Hover
222 Strike and the road/shadows in Checkered Flag. [Shamus]
223 * Partially fixed a problem with the SUBC opcode in the RISC processors. This
224 allows Hover Strike, Phase Zero and Fight For Life to boot into their title
225 screens and makes them somewhat playable. [Shamus]
226 * Fixed a horizontal scaling problem in the OP and the off-by-one bug that it
227 reintroduced. This fixes the road in Atari Karts and probably a few others.
228 [Shamus]
229 * Fixed a long standing blitter bug that kept certain doors in AvP from
230 rendering correctly. [Shamus]
231 * Fixed some vertical positioning bugs in the OP. Now Checkered Flag, Alien
232 vs Predator and probably others now work as they should (graphically ;-)
233 [Caz]
234 * Better GUI support. Most options in the GUI work now, and more are expected
235 to be functional in the near future. [Shamus]
236 * Fixed a few more lingering blitter bugs (there are more to be found). This
237 fixes most of the glitches in Cybermorph and Alien vs Predator. [Shamus]
238 * Fixed an Object Processor scaled bitmap bug that caused incorrect
239 positioning of scaled bitmaps that started outside the line buffer, and
240 also fixed a problem that caused the OP to hang in certain situations. This
241 fixes Bubsy, International Sensible Soccer, and probably a few others.
242 [Shamus]
243 * Cleaned up various bits of video rendering related code. [nwagenaar]
244 * Added support for OpenGL textures with a depth of 16bpp, 24bpp or 32bpp.
245 [nwagenaar]
246 * Rewrote several OpenGL related rendering code concerning the new OpenGL
247 texture depths and texture sizes. [nwagenaar]
248 * Rewrote several OpenGL rendering functions concerning speed related items.
249 [nwagenaar]
250 * Several bugs resolved due to OpenGL and normal rendering code. [nwagenaar]
251 * Default resolution for OpenGL is now 640x480. [nwagenaar]
254 Virtual Jaguar v1.0.6 GCC/SDL
255 -----------------------------
257 * Added support for gzipped ROM files. [Adam Green]
258 * Added OpenGL support. Because of this, aspect ratios in the various
259 graphic modes should be correct now. Thanks goes to Niels for enlightenment
260 in this area. :-) [Shamus]
261 * Moved all platform specific video code to video.cpp. This should make it
262 easier to add functionality to the video subsystem without having to chase
263 code around in places where it didn't belong. [Shamus]
264 * Key bindings are now customizable. [Shamus]
265 * VJ now uses a config file (vj.cfg) for commonly used settings. Settings in
266 the config file can still be overridden by command line switches. [Shamus]
267 * Preliminary GUI mouse support. [Shamus]
268 * Fixed an off-by-one bug in the Object Processor when dealing with scaled
269 bitmap objects. [Shamus]
270 * Fully virtualized screen size. What this means is that we can keep the
271 Jagaur screen displayed in a convenient size (320 x 240) and the graphics
272 that various ROMs display will now be properly centered (more or less, they
273 were really centered for a TV display). [Shamus]
274 * Border color is now displayed properly. [Shamus]
275 * Fully pipelined DSP core. Because of this, Wolfenstein 3D now has sound. To
276 use the old core, use the -nopipeline switch. [Shamus]
279 Virtual Jaguar v1.0.5 GCC/SDL
280 -----------------------------
282 * Various fixes to the codebase so that it compiles and works properly on
283 Linux. :-) The makefiles are almost identical now, the only thing that's
284 different between them are the SYSTYPE and EXESUFFIX variables defined at
285 the top. [Shamus]
286 * Fixed a pernicious blitter bug that kept Rayman from doing proper collision
287 detection. [Shamus]
288 * Added a simple file selector so that typing in long filenames in order to
289 run the emulator is no longer necessary. :-) To use it, instead of
290 supplying a ROM name, simply put in the name of the directory where your
291 ROMs live. [Shamus]
292 * Removed all the assembly language code from the DSP, so it should be a
293 little less buggy now. Also, removed some brain-dead timeslice releasing
294 that was causing a bunch of problems with various ROMs. [Shamus]
295 * Added sound support! In order to hear any sound, you probably have to
296 start VJ with the -dspon switch. Also, unless you have a very fast computer
297 the sound is going to be choppy. Hopefully future optimizations will cure
298 this. ;-) [Shamus]
299 * Added GUI support. You can see the results by hitting the TAB key while the
300 emulator is running. ;-) [Shamus]
301 * Lots of cleanups to the source code including the ability to trace who
302 writes what to where. [Shamus]
305 Virtual Jaguar v1.0.4 GCC/SDL - source only release
306 ---------------------------------------------------
308 * Lots of bugfixes. [Shamus]
309 * Jaguar BIOS now works properly and is used by default. BIOS failure was
310 due to a bug in the GPU (specifically in the SUBC and ADDC opcodes). To
311 override this behavior, use the -nobios switch. [Shamus]
312 * Rewrote the OP code--mostly because it was pissing me off. ;-) Not
313 to mention that it was almost completely unmaintainable in its former
314 state and was just plain wrong in its implementation in many places.
315 Because of this, some RMW effects that were missing from AvP are present
316 now and leftover crud in scaled bitmaps in Rayman is gone now. ;-) [Shamus]
317 * ZIP support! Now there is no longer any need to unzip ROMs (although if
318 you prefer to waste HD space, VJ will gladly accomodate you). The code to
319 support this is a pretty ugly hack, but it works and there are other fish
320 to fry at the moment. Also, ZLIB is now required to compile VJ. [Shamus]
321 * Support for PD ROMs. Currently the only one that works at all is JagMania,
322 though as the hardware emulation gets better more PD ROMs will begin to
323 work. Note that you must use the -nobios switch for this to work. [Shamus]
324 * Preliminary support for PAL Jaguar emulation. Default is NTSC. To use it,
325 use the -pal switch. [Shamus]
326 * Support for DSP activation. The DSP is now *off* by default, since it
327 doesn't work properly yet. Use the -dspon switch to force the DSP on.
328 [Shamus]
329 * Removed all hacks that were written to support a specific ROM from the OP
330 and GPU code (much more remains to be removed). Since the CRCs that were
331 calculated to support these hacks were done on byte swapped ROMs, they
332 weren't working anyway. Besides which, a hack means that you don't
333 understand the hardware properly and/or don't know how to write the code to
334 properly emulate the hardware. ;-) [Shamus]
335 * Renamed the executable from the ridiculously named jag_em to the more
336 sensibly named vj. Note that the Jag_em.cpp file has also been changed to
337 reflect this name change. [Shamus]
338 * Removed Aaron Giles 68K dissasembler in favor of the one included with the
339 Musashi core. It's there, why not use it? ;-) [Shamus]
340 * Reordered the order of A, B, and C buttons to more accurately reflect their
341 respective positions on a real Jaguar controller. Also fixed a small bug that
342 kept the number pad from reporting the right numbers to the emulator. :-)
343 [Shamus]
344 * Started to remove the !__PORT__ defintions from the source code. Since this
345 is supposed to be a portable emulator, we won't be using any MS specific
346 code anyway. [Shamus]
347 * Fixed some problems with the blitter when doing clipping and bit expansion.
348 Also fixed (reintroduced?) a bug that existed in the real blitter HW (the
349 YADD1 bit in A2--fixes Tempest 2000). [Shamus]
350 * Probably a bunch of other stuff that I've forgotten about. ;-) [Shamus]
352 NOTE: Tested only on WIN32 platform! ;-)
355 Virtual Jaguar v1.0.3 GCC/SDL - source only release
356 ---------------------------------------------------
358 * Converted GNU assembly in the GPU core to C code -- Rayman and
359 Alien vs Predator work again. :-) [Shamus]
360 * Removed closed source Starscream and replaced it with the open source
361 Musashi core. Because of this, VJ runs a little faster now. :-) [Shamus]
362 * Various cleanups to the source files (still lots of work to do!). [Shamus]
364 NOTE: Tested only on WIN32 platform!
367 1.0.1 - 1.0.2 - Unreleased, mostly for testing/finding bugs
368 -----------------------------------------------------------
370 * Lots of stuff happened, but we can't remember any of it. :-)
373 Virtual Jaguar v1.0.0 GCC/SDL - initial source release
374 ------------------------------------------------------
376 * Converted VC++ assembly to standard GNU assembly.
377 * Fixed small bugs in SDL related items (keyboard/graphics).
378 * Added *some* optimalisations to the graphics sources.
379 * Added joystick support (not tested).
380 * Added joystick port support (not tested).
381 * Added frameskip support.
383 Source only release. Tested on BeOS, Linux, FreeBSD and WIN32.
384 SOUND emulation was NOT done. Need help with this one :)
387 SDLEMU (Niels Wagenaar & Caz) -