| 1 | Release 5 (TBA) |
| 2 | --------------- |
| 3 | 0) Added a date creation stamp in the application command line information |
| 4 | - This date already appears in the Release 4 executable but was not referenced in his history note |
| 5 | 1) Added a specific breakpoint for the M68K illegal instruction exception |
| 6 | -- Alert box will display a message and then the code will stop |
| 7 | 2) Added a specific breakpoint for the M68K address error exception |
| 8 | -- Alert box will display a message and then the code will stop |
| 9 | 3) Added a HW registers browser window and set a tab for the Blitter |
| 10 | 4) Added detection for the unsigned/signed short type |
| 11 | -- Will allow the return of a short type variable's value |
| 12 | 5) Added a specific breakpoint for the M68K Unimplemented instruction, and Exception not referenced exceptions |
| 13 | 6) Fix potential emulator freeze after an exception has occured |
| 14 | 7) Fix a random crash when reading the source lines information |
| 15 | 8) Added ELF & DWARF .debug* types |
| 16 | 9) Added ELF section types check and new error messages |
| 17 | 10) Modified the call stack layout window and added source filename from the called source line |
| 18 | 11) Added a source tab in the main window for step into tracing |
| 19 | 12) Added the step over for source level tracing |
| 20 | 13) Set text conversion to Qt/HTML format for the M68K tracing window |
| 21 | 14) Added a source code file date check when reading DWARF information |
| 22 | -- Will avoid source code mismatching with the ELF executable |
| 23 | 15) Remove Visual Studio 2015 support |
| 24 | 16) Work around fix for a compilation error on Linux |
| 25 | -- EEPROM directory creation allowed only for Windows at the moment |
| 26 | 17) Show the SR value as a readable form in the CPU browser |
| 27 | 18) Potential fix to compile on Linux |
| 28 | -- Added the relative directory path for the Qt include files |
| 29 | 19) Merge the Linux build fixes from @richard42 |
| 30 | -- Jaguar core's makefile and Qt pro file updates, fix filenames case sensitive & fixes for Linux |
| 31 | 20) Updated the M68K exception catch |
| 32 | -- Added a M68K exception catch check in the Alpine tab settings |
| 33 | -- Added a specific breakpoint for the M68K bus error exception |
| 34 | 21) Project has switched to libdwarf 20210305 library 64bits for VS 2017 |
| 35 | |
| 36 | Release 4a (15th August 2019) |
| 37 | ----------------------------- |
| 38 | Git commit: f04df4f185ed4f3cfc805d0f61b3c019a108ae2c |
| 39 | - |
| 40 | 0) Fix specific breakpoint for ROM cartridge or unknown memory location writing |
| 41 | |
| 42 | Release 4 (10th August 2019) |
| 43 | ---------------------------- |
| 44 | Git commit: 9b25d85d1ea4a9476b83476bcec65e05464f68da |
| 45 | - |
| 46 | 0) The zoom value setting has been fixed in the registry |
| 47 | 1) Debugger mode now shares the same alpine rom path setting |
| 48 | 2) Local variables window displays register name now |
| 49 | 3) Switch to Zlib 1.2.11 static library 64bits for VS 2017 |
| 50 | 4) Switch to SDL 1.2.15 static library 64bits for VS 2017 |
| 51 | 5) Local variables window displays values from function's parameters |
| 52 | 6) Fixed the typedef's name display in Local and Watch variables window |
| 53 | 7) Breakpoint may now occur in case of a ROM cartridge writing |
| 54 | -- ROM cartridge writing detection follow the alpine "allow writes to cartridge rom"'s flag check |
| 55 | -- Alert box will display a message with possibility to pass or not the breakpoint only if this is related to a 8 or 16 bits ROM access |
| 56 | 8) Local variables window detects now if a variable is used or not by the code |
| 57 | 9) The address provided in the debugger memory windows is now verified to prevent crash |
| 58 | -- Wrong address will be displayed in red |
| 59 | 10) UI changes |
| 60 | -- Added new icons for the exit and status features |
| 61 | -- Modified icons for the SP (Stack) browser |
| 62 | -- Unified icons sizes depend on their usage (drop down menu and main menu) |
| 63 | -- Underline the active M68K line in the disassembly window |
| 64 | -- Allow the up/down navigation on the SP (Stack) browser |
| 65 | -- Restart function cleans-up the SP (Stack) browser and the heap allocator system |
| 66 | -- Fixed the up navigation on the memory window |
| 67 | 11) Added some log information for the emulator initialisations |
| 68 | 12) Breakpoint will happen in case of writing at unknown memory location |
| 69 | -- Alert box will display a message and then the code will stop |
| 70 | 13) Added the DRAM size in the emulator status window |
| 71 | 14) Debugger sources code clean-up |
| 72 | 15) Added a call stack feature |
| 73 | 16) Follow platform requirement to prevent source file reading issue |
| 74 | 17) UI modifications |
| 75 | -- Modified icon for the memory window to make a distinction with the memory browser |
| 76 | -- The all watch, and Exception Vector Table windows, can be closed using keyboard |
| 77 | -- Renamed the debugger dedicated icons to make a distinction |
| 78 | -- Added the call stack window |
| 79 | 18) Fixed a crash in the all watch window after loading a new binary without ELF/DWARF information |
| 80 | -- Previously used ELF/DWARF information was still accessible |
| 81 | 19) Fixed slash/backslash issue, in the Alpine tab, to follow platform requirement |
| 82 | 20) Heap allocation window uses the DRAM size limit option and detect if heap allocation shares space with SP (Stack) |
| 83 | 21) Added a Jaguar model and BIOS configuration tab |
| 84 | 22) Jaguar model and BIOS configuration integration |
| 85 | 23) Added LEB128 decoding functions |
| 86 | -- It is used for the DWARF decoding information |
| 87 | 24) Debugger support improvement |
| 88 | -- DWARF support for the enum type (partial), structure and subroutine type |
| 89 | -- Debugger can report variable's unsigned char value |
| 90 | 25) UI modifications |
| 91 | -- Added a status bar, better status report & information display for the heap allocation window |
| 92 | -- Added a status bar, better status report & information display for the local variables window |
| 93 | -- Added better information display for the exception vectors table window, and added some missing vectors |
| 94 | -- Added a status bar, better status report & information display for the call stack window |
| 95 | -- Added a status bar, better status report & information display for the all watches window |
| 96 | 26) Added screenshot feature |
| 97 | -- Not accessible in debugger mode |
| 98 | -- Added screenshot editable path in the general tab, and a key binding |
| 99 | 27) Minor misspellings fixes |
| 100 | 28) DWARF source code directory path clean-up |
| 101 | 29) Added a source code files list viewer |
| 102 | -- List comes from the DWARF information |
| 103 | 30) Check potential variables missing/incomplete description found in the DWARF information |
| 104 | -- No crash involved but can help to reduce such as variables duplicate or the blank ones |
| 105 | 31) Added a sorting filter in the all watches window |
| 106 | 32) Improve source code file reading to avoid additional text/bytes reading |
| 107 | 33) Help & content texts updates |
| 108 | 34) Fixed a crash legacy issue when emulator launches in Alpine mode without a valid rom |
| 109 | 35) Added the support for the used lines source's DWARF structure |
| 110 | -- Mostly used to handle missing subprogram's lines information, and missing CU's low/high PC |
| 111 | 36) Added the Rx version's contact in the help text |
| 112 | 37) Added search paths in case of missing DWARF directories information |
| 113 | -- Used to look for the file(s) |
| 114 | 38) Setup CU's low/high PC in case of the DWARF structures doesn't have it |
| 115 | -- Used mostly to allow display the source assembled with vasm |
| 116 | 39) Added function name support from ELF structure |
| 117 | 40) Added the return address information in the call stack |
| 118 | 41) Added multiple breakpoints feature, and their key bindings, for functions only |
| 119 | 42) Added timer initialisation for the SDL setup |
| 120 | 43) Added a cartridge view menu |
| 121 | -- Added a window to display my own directory and his files list |
| 122 | 44) Debugger sources code clean-up |
| 123 | 45) Fix a crash when emulator, in non-debugger mode, opens the breakpoint UIs at launch |
| 124 | 46) Fix crash with potential missing DWARF structure tag's type name |
| 125 | 47) Added ELF sections check so a potential unknown section will stop, or not stop, the decoding |
| 126 | 48) Project has switched to Qt 5.12.0 library 64bits for VS 2017 |
| 127 | 49) Added a Save Dump As... feature to save a memory zone to a file |
| 128 | 50) The -d command line option, dedicated to the debugger, has been renamed to avoid duplication with the dsp one |
| 129 | -- -d has been renamed by -D because another -d was also used for the dsp command line option |
| 130 | 51) Removed the sorting filter in the all watches window |
| 131 | 52) Fix the support of the DRAM size limit option in the heap allocation window |
| 132 | 53) Set cartridge view menu for debugger mode only |
| 133 | 54) Prevent crash in case of call stack is out of range |
| 134 | |
| 135 | Release 3 (13th November 2017) |
| 136 | ------------------------------ |
| 137 | Git commit: b1b673a3b0d19e3c2c45b6590b773b11e45bced7 |
| 138 | - |
| 139 | 0) Fixed the windows respawning in the next emulator launch within --alpine or --debugger options |
| 140 | 1) Added an Exception Vector Table window |
| 141 | 2) Modified the About window to update the credits list in a more appropriate way |
| 142 | -- Updated the emulator application credits line |
| 143 | 3) Added 'Rx' word to the emulator name |
| 144 | 4) Fixed a crash when reading the DWARF information in the case of the DWARF2 format has not been used |
| 145 | 5) Added ui, alpine and debugger groups in the settings |
| 146 | 6) Added the possibility to erase settings |
| 147 | 7) Added the --es-all, --es-ui, --es-alpine and --es-debugger options to erase specific settings |
| 148 | 8) Added a key bindings tab and adapted the configuration dialog tabs |
| 149 | -- User can modify the key bindings where appropriate |
| 150 | -- Key bindings UI is displayed based on the option used (--debugger, -- alpine) |
| 151 | 9) Fixed a crash, in Release mode, when the HW labels setting is turn on |
| 152 | 10) Solved an interference between the HW labels setting and the one used by the debugger |
| 153 | -- The setting is now only the reference used |
| 154 | 11) Fixed the SP (Stack) browser UI potential missing data |
| 155 | 12) Create a directory for EEPROMs (based on the EEPROMs setting) if it doesn't already exist |
| 156 | 13) Keep the scrollbar position in accordance of the M68K PC pointer |
| 157 | -- UI displays the source without the need to move down/up the scrollbar |
| 158 | 14) Fixed a crash when DWARF information report a source line number exceeding the number of lines present in a source file |
| 159 | -- This may come from the linker vlink |
| 160 | 15) Improved the .heap section detection to avoid a detection error |
| 161 | -- Depend vlink version, .heap section may have an Alloc flag |
| 162 | 16) Fixed a crash when DWARF information does references to missing source code files |
| 163 | 17) Added a local variables window |
| 164 | 18) Project has switched to Visual Studio 2017 and Qt 5.9.1 library |
| 165 | |
| 166 | Release 2 (3rd September 2017) |
| 167 | ------------------------------ |
| 168 | 0) Added some error detections when reading the ELF executable file |
| 169 | 1) Added all hardware labels (based on the document scans from the Version 2.4 - June 7, 1995) |
| 170 | 2) "Step Over" code function for BSR/JSR functions |
| 171 | 3) Added the .debug_ranges detection to avoid a detection error |
| 172 | 4) DWARF support |
| 173 | -- TAG: Compilation Unit, Subprogram, Variables, Types |
| 174 | -- Line numbers, symbols, functions |
| 175 | 5) Added an All Watch window for non-local variables |
| 176 | 6) Added a heap allocator window based on my own memory allocation functions |
| 177 | 7) Added additional 4 memory windows with address input based on hexa, decimal or symbol name |
| 178 | 8) Windows refreshing executed only if windows is visible |
| 179 | 9) Added a restart function |
| 180 | -- Restart only the 68000 program counter to his original set |
| 181 | 10) Modified the icons color backgound for the "Step In" and "Step Over" functions |
| 182 | 11) Updated the About window to update the credits list |
| 183 | 12) 64 bits Release executable |
| 184 | 13) Fixed (hacking) the display of the SP (Stack) browser |
| 185 | 14) Set the emulator in Halt mode when launched in alpine debug mode without a loaded rom |
| 186 | -- Otherwise the 68000 program counter will have a 0 value and will execute the code at this address |
| 187 | 15) Added some information in the --help/-h/-? option |
| 188 | 16) --debugger option no longer force the log file |
| 189 | 17) Added a --dram-max option to extend the DRAM size to 8MB |
| 190 | 18) Added the "enter" key support when setting the BPM (Breapoint) |
| 191 | 19) Save the windows positions, size and visibilities (show or hide) status |
| 192 | -- Such windows will automatically respawn in the next emulator launch |
| 193 | |
| 194 | Release 1 (12th February 2017) |
| 195 | ------------------------------ |
| 196 | 0) BPM (Breapoint) now stop at the designated address and no longer stop after executing the code |
| 197 | 1) Clean-up the tracing / no-tracing flags for better U.I understanding |
| 198 | 2) Added SP (Stack) browser |
| 199 | 3) User can change now the number of lines of disassembly displayed in the tracing window |
| 200 | 4) User can turn on/off the op-codes associated in the disassembly lines displayed in the M68K tracing window |
| 201 | 5) Added an emulator status window (GPU status, M68K debugger and tracking status) |
| 202 | 6) Added a GPU disassembly tracing window - Display the current PC pointer |
| 203 | 7) Added a DSP disassembly tracing window - Display the current PC pointer |
| 204 | 8) Added possibility to change refresh rate of browsers when emulation is launched |
| 205 | 9) Display partial hardware labels (Internal Memory and Graphics sub-system address space) in the disassembly lines displayed in the M68K tracing window |
| 206 | -- Display first the hardware labels (based from the Jag V8 dev. PDF) and then the ones possibly found in the ELF debug symbol |
| 207 | 10) Minor U.I cosmetic changes |
| 208 | 11) User can turn on/off the hardware labels associated in the disassembly lines displayed in the M68K tracing window |
| 209 | -- It doesn't apply to the hardware labels possibly found in the ELF debug symbol |
| 210 | |
| 211 | Release 0 (5th January 2017) |
| 212 | ---------------------------- |
| 213 | 0) New option --debugger |
| 214 | 1) ELF format support |
| 215 | 2) ELF debug symbol support |
| 216 | 3) "Step Into" code function |
| 217 | 4) Menus layout dedicated to the debugger |
| 218 | 5) Added a dedicated main window for tracing (M68K) |
| 219 | 6) Added a Debugger tab in the config tab |
| 220 | 7) Visual Studio 2015 project support |
| 221 | 8) libelf-0.8.13 library support |
| 222 | 9) 64 bits debug executable only |
| 223 | |
| 224 | |
| 225 | Known issues |
| 226 | ============ |
| 227 | 1) Video output is not displayed due to my OpenGL / Qt5 5.5.1 integration with VS 2015 but solved when using the Qt 5.9.1 package for VS 2017 |
| 228 | 2) The BPM (Breapoint) remains stuck on his address when user wants to continue the code execution |
| 229 | -- Need to trace over the BPM or unset the BPM |
| 230 | -- The issue can be prevented if the code doesn't set IRQ, otherwise the IRQ will need to be traced to get back control |
| 231 | 3) DWARF 2 support |
| 232 | -- With GCC: the code must be compiled with the -gdwarf-2 option |
| 233 | 4) The Local and Watch variables window may display not available type information or empty information |
| 234 | -- Such missing information may be included in future release |
| 235 | -- The 'const' type may not be reported correctly in the DWARF information |
| 236 | 5) The 2MB mirroring is no longer applied in case of --dram-max option usage |
| 237 | 6) Stack must reflect the --dram-max option usage otherwise the stack may be corrupted |
| 238 | -- The application needs to set the SP (Stack) in accordance |
| 239 | 7) The Exception Vector Table window displays only 65 vectors |
| 240 | -- Missing vectors may be added in future release |
| 241 | 8) User needs to manualy check if the Atari Jaguar executable match his source code files |
| 242 | -- Otherwise, source code and assembly may not match or leads to instabilities |
| 243 | 9) The emulator needs to be restarted in case of the following actions occur |
| 244 | -- Key bindings changes |
| 245 | -- BIOS selection changes and without new executable load |
| 246 | 10) In the case of a ROM cartridge writing, and with occuring breakpoint, the PC pointer will point at the next instruction and not at the instruction causing the breakpoint |
| 247 | 11) Emulator will crash in case of wrong address value provided in the memory browser |
| 248 | 12) The RAM access log is limited to the 2MB |
| 249 | 13) In various occasions, global variables may be duplicated or without name in the DWARF information |
| 250 | -- It may come from the Vlink linker and/or GCC 7.1.0 or 8.2.0 compilation with -gdwarf-2 option |
| 251 | 14) Source code disply only assembled code from vasm with option -dwarf |
| 252 | 15) After a new breakpoint set, the breakpoint list window is not refreshed |
| 253 | -- User must perform an operation, such code tracing, to see the breakpoints list update |
| 254 | 16) Some ASCII characters may be not displayed correctly |
| 255 | -- Probably depend how the text is displayed, this is related to the Qt/HTML encoding done when reading DWARF file |
| 256 | 17) Potential legacy crash when leaving emulator in pause mode for a long period of time |
| 257 | -- Need much investigation |
| 258 | |
| 259 | Cosmetic / UX issues |
| 260 | ==================== |
| 261 | 1) The SP (Stack) icon color backgound doesn't look similar with the other ones |
| 262 | 2) The SP (Stack) browser size always open at a forced size no matter if the size has been changed |
| 263 | 3) Not every features have associated key bindings |
| 264 | |
| 265 | Legacy issues/hints |
| 266 | =================== |
| 267 | 1) Emulator seems to have easter egg(s) |
| 268 | -- The option --yarrr displays a single message and end the application |
| 269 | -- Pressing F8, while in the main window, will create an extra message in the log file |
| 270 | 2) The --alpine option force the log file but it can be override if --no-log option is set after the --alpine option |
| 271 | |
| 272 | Project information |
| 273 | =================== |
| 274 | 1) Code based on the Shamus Hammons source code available via Gethub by the 12th September 2017 (2.1.3 Final) |
| 275 | 2) Visual Studio 2017 project support for 64 bits |
| 276 | 3) libelf 0.8.13 library 64bits for VS 2017 |
| 277 | 4) libdwarf 20210305 library 64bits for VS 2017 |
| 278 | 5) Qt 5.12.0 library 64bits for VS 2017 |
| 279 | 6) Zlib 1.2.11 library 64bits for VS 2017 |
| 280 | 7) SDL 1.2.15 library 64bits for VS 2017 |
| 281 | 8) The original make files have been modified to follow the requirements and modifications |
| 282 | 9) The 'Rx' word has been added to the emulator name to make distinction with the official version |
| 283 | 10) The project is set at https://github.com/djipi/Virtual-Jaguar-Rx |
| 284 | 11) GPLv3 file document has been renamed as LICENSE, to fit better the GitHub requirements |
| 285 | -- Text / License terms are the same |
| 286 | 14) The x86 configuration has been removed in the VS 2017 project |
| 287 | |
| 288 | |
| 289 | Download statistics |
| 290 | ------------------- |
| 291 | jaguar64eu : 15 downloads for the Release 0 on the 12th Feb, 2017 |
| 292 | jaguar64eu : 18 downloads for the Release 1 on the 21st May, 2017 |
| 293 | No downloads statistics available for the Release 2 |
| 294 | No downloads statistics available for the Release 3 |