From fca261c4e375b9f9137599de602efcb85c855241 Mon Sep 17 00:00:00 2001 From: stephena Date: Wed, 10 Nov 2010 22:38:16 +0000 Subject: [PATCH] Updated debugger documentation for recent disassembly changes. Removed reference to disassembly 'SKIP' command, since it isn't implemented yet. Decided on Nov. 15 for the 3.3 release date, and updated all relevant files. git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2181 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba --- Changes.txt | 20 ++-- Readme.txt | 2 +- debian/changelog | 2 +- docs/debugger.html | 171 ++++++++++++++++++++++++---- docs/graphics/debugger_cpuregs.png | Bin 1649 -> 2136 bytes docs/graphics/debugger_main.png | Bin 30241 -> 33300 bytes docs/graphics/debugger_rom.png | Bin 8641 -> 9965 bytes docs/graphics/debugger_romcmenu.png | Bin 4422 -> 7051 bytes docs/index.html | 15 ++- src/debugger/CartDebug.cxx | 5 +- src/macosx/Info-Stella.plist | 2 +- src/unix/stella.SlackBuild | 2 +- src/unix/stella.spec | 5 +- src/win32/stella.rc | 8 +- 14 files changed, 188 insertions(+), 44 deletions(-) diff --git a/Changes.txt b/Changes.txt index 9eaac039c..7ffa4daee 100644 --- a/Changes.txt +++ b/Changes.txt @@ -12,11 +12,11 @@ Release History =========================================================================== -3.2.2 to 3.3: (November xx, 2010) +3.2.2 to 3.3: (November 15, 2010) * Added the following Distella 'directives', which are used to override - and specifically tell the debugger how to treat address space (SKIP, - CODE, GFX, PGFX, DATA, ROW). See the debugger documentation for more + and specifically tell the debugger how to treat address space (CODE, + GFX, PGFX, DATA, ROW). See the debugger documentation for more information. * Disassembly from the debugger is now tracked by the emulation core, @@ -45,7 +45,7 @@ * Added the following commands to the debugger prompt: - clearconfig, listconfig, loadconfig, saveconfig (used for Distella configuration files) - - skip, code, data, gfx, pgfx, row + - code, data, gfx, pgfx, row (directives used to override automatic disassembly types) - jump (jumps to a specific address in the disassembly) - type (gives detailed info for disassembly type of an address) @@ -53,9 +53,9 @@ * The debugger prompt commands 'trap', 'trapread' and 'trapwrite' now accept a range of addresses as well as a single address. - * Added 'data source' address output for the CPU A/X/Y registers. This - is useful for quickly seeing what an operand address resolves into - with an LDx command. + * Added 'data source' address output for the CPU SP/A/X/Y registers. + This is useful for quickly seeing what an operand address resolves + into with various load commands. * Many commands in the debugger prompt are now case-insensitive; further improvements will be made in a future release. @@ -71,6 +71,9 @@ * Program counter/instruction addresses can now be toggled in the disassembly. + * Disassembled instructions involving relative branches now show only + one byte for the operand, not two bytes. + * Fixed bug in several text input fields, whereby binary data couldn't be input (a '\' was required, but the character was blocked). @@ -90,7 +93,8 @@ video modes, not just when starting the application. * Added support for building a Windows version compatible with Windows - 98 and 2000 (compiled with Visual Studio 2005). + 98 and 2000 (compiled with Visual Studio 2005). Testing is very + limited, since I no longer have access to these systems. * Fixed build issues for Innosetup in Windows XP. diff --git a/Readme.txt b/Readme.txt index e27c48810..2988e2e35 100644 --- a/Readme.txt +++ b/Readme.txt @@ -9,4 +9,4 @@ the Stella Website at: Enjoy, The Stella Team -November xx, 2010 +November 15, 2010 diff --git a/debian/changelog b/debian/changelog index b1a5a863f..762b9a93e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,7 +2,7 @@ stella (3.3-1) stable; urgency=high * Version 3.3 release - -- Stephen Anthony Wed, 25 Aug 2010 18:38:25 +0200 + -- Stephen Anthony Mon, 15 Nov 2010 18:38:25 +0200 stella (3.2.1-1) stable; urgency=high diff --git a/docs/debugger.html b/docs/debugger.html index e07b02609..08ddbe362 100644 --- a/docs/debugger.html +++ b/docs/debugger.html @@ -27,7 +27,7 @@ feature that no other 2600 debugger has; it's completely cross-platform.< breakpoints as you want.
  • Conditional breakpoints - Break running program when some arbitrary - condition is true (e.g. "breakif 'a == $7f && c'" will break when the Accumulator value is $7f and the Carry flag is true, no matter where + condition is true (e.g. "breakif {a == $7f && c}" will break when the Accumulator value is $7f and the Carry flag is true, no matter where in the program this happens). Unlike the cond breaks in PCAE, Stella's are *fast*: the emulation will run at full speed unless you use lots of breakif's at the same time, or have a slow CPU.
  • @@ -41,8 +41,22 @@ feature that no other 2600 debugger has; it's completely cross-platform.<
  • Frame advance (automatic breakpoint at beginning of next frame) You can advance multiple frames with one command.
  • -
  • Disassembly from Distella, with support for determining code vs. - data sections.
  • +
  • Supports Distella 'configuration directives', which may be used to + override automatic code/data determination in the disassembly. For now, + the following directives are supported: CODE, GFX, PGFX, DATA, ROW. + These directives can be entered at the debugger prompt, or (automatically) + loaded and saved in configuration files.
  • + +
  • Extensive disassembly support, both from the emulation core and with help + from Distella. Where possible, the disassembly differentiates between code, + player graphics and playfield graphics (ie, addresses stored in GRPx and PFx) + and data (addresses used as an operand of a command). Code sections are also + differentiated between actual code, and 'tentative' code (ie, areas that may + represent code sections, but haven't actually been executed yet). Such + tentative code is marked with a '*' symbol.
  • + +
  • Supports visual representation of the bitmap data of graphics areas, + as well as the ability to directly edit these areas in either hex or binary.
  • Support for DASM symbol files (created with DASM's -s option), including automatically loading symbol files if they're named @@ -68,6 +82,8 @@ feature that no other 2600 debugger has; it's completely cross-platform.< currently selected bank, and manually change banks.
  • Registers/memory that get changed by the CPU during debugging are highlighted when they're displayed.
  • +
  • Data sources for the CPU SP/A/X/Y registers, showing the resolved/source + address of of load operands.
  • Scanline advance (like frame advance, break at beginning of next scanline).
  • TIA display is updated during step/trace, so we can see our @@ -98,8 +114,9 @@ feature that no other 2600 debugger has; it's completely cross-platform.<
  • Possibly support for recording and playing back input files, like MAME. This isn't a debugger feature per se, but it'll make it easier to reliably trigger a bug so you can debug it.
  • +
  • Various new GUI enhancements
  • @@ -415,7 +432,7 @@ if we wanted to use it again.

    "breakif function_name":

    -	function gameReset ' !(*SWCHB & 1 ) '
    +	function gameReset { !(*SWCHB & 1 ) }
     	breakif gameReset
     
    @@ -426,7 +443,7 @@ if the Game Select switch is pressed. We want to break when the user presses both Select and Reset:

    -	breakif ' gameReset && gameSelect '
    +	breakif { gameReset && gameSelect }
     

    User-defined functions appear in "listfunctions", which shows the label @@ -534,7 +551,7 @@ beginning of the 64th scanline.

    (non-bankswitched) ROMs, it will always contain 0. One useful use is:

    -    breakif ' pc==myLabel && _bank==1 '
    +    breakif { pc==myLabel && _bank==1 }
     

    This is similar to setting a regular breakpoint, but it will only trigger @@ -605,11 +622,14 @@ can also get rid of all traps at once with the "cleartraps" command.

    c - Carry Flag: set (0 or 1), or toggle (no arg) cheat - Use a cheat code (see manual for cheat types) clearbreaks - Clear all breakpoints + clearconfig - Clear Distella config directives [bank xx] cleartraps - Clear all traps clearwatches - Clear all watches cls - Clear prompt area of text and erase history + code - Mark 'CODE' range in disassembly colortest - Show value xx as TIA color d - Decimal Flag: set (0 or 1), or toggle (no arg) + data - Mark 'DATA' range in disassembly define - Define label xx for address yy delbreakif - Delete conditional breakif xx delfunction - Delete function with label xx @@ -619,25 +639,32 @@ can also get rid of all traps at once with the "cleartraps" command.

    exec - Execute script file xx frame - Advance emulation by xx frames (default=1) function - Define function name xx for expression yy + gfx - Mark 'CFX' range in disassembly help - This cruft + jump - Scroll disassembly to address xx listbreaks - List breakpoints + listconfig - List Distella config directives [bank xx] listfunctions - List user-defined functions listtraps - List traps + loadconfig - Load Distella config file [from file xx] loadstate - Load emulator state xx (0-9) loadsym - Load symbol file named xx n - Negative Flag: set (0 or 1), or toggle (no arg) pc - Set Program Counter to address xx + pgfx - Mark 'PGFX' range in disassembly print - Evaluate/print expression xx in hex/dec/binary ram - Show ZP RAM, or set address xx to yy1 [yy2 ...] reset - Reset 6507 to init vector (excluding TIA/RIOT) rewind - Rewind state to last step/trace/scanline/frame riot - Show RIOT timer/input status rom - Set ROM address xx to yy1 [yy2 ...] + row - Mark 'ROW' range in disassembly run - Exit debugger, return to emulator runto - Run until string xx in disassembly runtopc - Run until PC is set to value xx s - Set Stack Pointer to value xx save - Save breaks, watches, traps to file xx + saveconfig - Save Distella config file [to file xx] saverom - Save (possibly patched) ROM to file xx saveses - Save console session to file xx savestate - Save emulator state xx (valid args 0-9) @@ -645,9 +672,10 @@ listfunctions - List user-defined functions step - Single step CPU [with count xx] tia - Show TIA state (NOT FINISHED YET) trace - Single step CPU over subroutines [with count xx] - trap - Trap read and write accesses to address xx - trapread - Trap read accesses to address xx - trapwrite - Trap write accesses to address xx + trap - Trap read/write access to address(es) xx [to yy] + trapread - Trap read access to address(es) xx [to yy] + trapwrite - Trap write access to address(es) xx [to yy] + type - Show disassembly type for address xx [to yy] undef - Undefine label xx (if defined) v - Overflow Flag: set (0 or 1), or toggle (no arg) watch - Print contents of address xx before every prompt @@ -827,6 +855,11 @@ Selected registers here can also be changed by using the "Data Operations" butto further described in (J). All items are shown in hex. Any label defined for the current PC value is shown to the right. Decimal and binary equivalents are shown for SP/A/X/Y to the right (first decimal, then binary).

    +

    The column to the far right shows the 'source' of contents of the respective +registers. For example, consider the command 'LDA ($80),Y'. The operand of +the command resolves to some address, which isn't always easy to determine at +first glance. The 'Src Addr' area shows the actual resulting operand/address +being used with the given opcode.

    There's not much else to say about the CPU widget: if you know 6502 assembly, it's pretty self-explanatory. If you don't, well, you should learn :)

    @@ -929,6 +962,22 @@ decreased by 1:

    The ROM Widget is a disassembly of the current bank of ROM. If a symbol file is loaded, the disassembly will have labels. Even without a symbol file, the standard TIA/RIOT labels will still be present.

    +

    The disassembly is often quite extensive, and whenever possible tries to automatically +differentiate between code, graphics, data and unused bytes. There are actually two +levels of disassembly in Stella. First, the emulation core tracks accesses as a game +is running, making for very accurate results. This is known as a dynamic analysis. +Second, the built-in Distella code does a static analysis, which tentatively fills +in sections that the dynamic disassembler missed (usually because the addresses haven't +been accessed at runtime yet).

    +

    As such, code can be marked in two ways (absolute, when done by the emulation core), +and tentative (when done by Distella, and the emulation core hasn't accessed it yet). +Such 'tentative' code is marked with the '*' symbol, indicating that it has the potential +to be accessed as code sometime during the program run. This gives very useful information, +since it can indicate areas toggled by an option in the game (ie, when a player dies, +when difficulty level changes, etc). It can also indicate whether blocks of code after +a relative jump are in fact code, or simply data.

    + +

    The top area contains two items: @@ -947,7 +996,9 @@ If set to 'Never', the entire address space is treated as code. If set to The 'Automatic' setting is a combination of the previous two. First, an attempt is made to resolve data sections. If this results in the current program counter not being present in the disassembly, then a second disassembly is -done, without resolving data sections. +done, without resolving data sections. Note that this option applies only to +addresses determined by Distella; addresses marked as code or graphics by the +emulation core will stay as such, no matter what this setting says.

    Each line of disassembly has four fields:

    @@ -962,16 +1013,37 @@ by the "break" command, not the conditional "breakif" breakpoints Counter isn't necessarily involved).
  • Labels: Any labels assigned to the given address, either generated automatically by Distella, read from a DASM symbol file or custom -labels created by the user.
  • -
  • Instruction: This is a standard 6502 mnemonic (possibly with operand). -This field also contains the cycle count for the instruction (separated by a -semicolon).
  • -
  • Hex bytes: These are the raw machine code bytes for the instruction. -Note that only instructions that have been fully disassembled will have -bytes in this field.
  • +labels created by the user. If 'PC addresses' is enabled, the address will +be shown in grey. +
  • Disassembled bytes: This is either a standard 6502 mnemonic (possibly with operand), +or information about graphics and/or data. For instructions, the cycle count will be +included, separated by a semicolon. For graphics, a bitmap of the data, and the address +of the data is included. For actual data, only the address is included.
  • +
  • Hex bytes: These are the raw machine bytes for the code/graphics/data. +Note that only code, graphics or data will show bytes and can be edited.
  • -

    The 6502 mnemonic will be UPPERCASE for all standard instructions, +

    At this point, we should explain the various 'types' that the disassembler +can use. These are known as 'directives', and partly correspond to configuration +options from the standalone Distella program. They are listed in order of +decreasing hierarchy:

    + + + + + + +
    CODEAddresses which have appeared in the program counter, or +which tentatively can appear in the program counter. These can be edited in hex.
    GFXAddresses which contain data stored in the player graphics registers +(GRP0/GRP1). These addresses are shown with a bitmap of the graphics, which +can be edited in either hex or binary. The bitmap is shown as large blocks.
    PGFXAddresses which contain data stored in the playfield graphics registers +(PF0/PF1/PF2). These addresses are shown with a bitmap of the graphics, which +can be edited in either hex or binary. The bitmap is shown as small dashes.
    DATAAddresses used as an operand for some opcode.. These can be edited +in hex.
    ROWAddresses not used as any of the above. These are shown up +to 16 per line, and cannot be edited.
    + + +

    For code sections, the 6502 mnemonic will be UPPERCASE for all standard instructions, or lowercase for "illegal" 6502 instructions (like "dcp"). If resolving of data sections has been disabled for any reason, you'll likely see a lot of illegal opcodes if you scroll to a data table in ROM. This can also @@ -999,7 +1071,7 @@ bytes in the ROM Widget are editable. Double-click on them to edit them. When you're done, press Enter to accept the changes (in which case the cart will be re-disasembled) or Escape to cancel them. Note that only instructions that have been fully disassembled -can be edited. In particular, blank lines or lines with '.byte' directives +can be edited. In particular, blank lines or 'ROW' directives cannot be edited. If you wish to edit the latter, then the 'Resolve data' item should be set to 'Never' first. Also note that certain ROMs can have sections of address space swapped in and out dynamically. As such, changing @@ -1023,6 +1095,15 @@ disassembly line where the mouse was clicked.

  • RunTo PC: Single-step through code until the Program Counter matches the address of the disassembly line where the mouse was clicked.
  • + +
  • Toggle PC addresses: Show or hide blank labels as Program Counter +addresses.
  • + +
  • Toggle GFX binary/hex: Switch between editing GFX and PGFX sections +in either hexidecimal or binary.
  • + +
  • Re-disassemble: Self-explanatory; force the current bank to be +disassembled, regardless of whether anything has changed.
  • Limitations

    @@ -1072,6 +1153,56 @@ can update them just by re-running the relevant commands in the prompt.

    anywhere in the GUI via the keyboard, with Alt-S, Alt-T, Alt-L, Alt-F and Alt-R.

    + +
    +

    Distella Configuration Files

    +

    As mentioned in ROM Listing (M), Stella supports the following directives: +CODE/GFX/PGFX/DATA/ROW. While the debugger will try to automatically mark address +space with the appropriate directive, there are times when it will fail. There are +several options in this case:

    +
      +
    1. Manually set the directives: Directives can be set in the debugger +prompt with the code/gfx/pgfx/data/row commands. These accept an address range +for the given directive type. Setting a range with the same type a second time +will remove that directive from the range.
    2. +
    3. Use configuration files: Configuration files can be used to automatically +load a list of directives when a ROM is loaded. These files can be generated with the +'saveconfig' command, and loaded with the 'loadconfig' command. There are also +'listconfig' and 'clearconfig' commands to show and erase (respectively) the current +directive listing. Upon opening the debugger for the first time, Stella attempts +to load a configuration file from several places. For this example, assume a ROM +named "rr.a26", with properties entry "River Raid". Attempts will be made as follows: +
        +
      • ROM dir based on properties entry name: River Raid.cfg
      • +
      • ROM dir based on actual ROM name: rr.cfg
      • +
      • CFG dir based on properties entry name: configdir/River Raid.cfg
      • +
      +

      The location of 'configdir' will depend on the version of Stella, as follows:

      + +

      + + + + + + + + + + + + +
      Linux/Unix~/.stella/cfg/
      Macintosh~/Library/Application Support/Stella/cfg/
      Windows%APPDATA%\Stella\cfg\    + OR
      + _BASEDIR_\cfg\ + (if a file named 'basedir.txt' exists in the application + directory containing the full pathname for _BASEDIR_) +
      + +

    4. +
    + +

    Tutorial: How to hack a ROM

    diff --git a/docs/graphics/debugger_cpuregs.png b/docs/graphics/debugger_cpuregs.png index ea2f588ff4181ab643f7446d6f930fa87699cf2b..a8bd87e37af3fe18dc43f50ca2e8cdb0e67d2664 100644 GIT binary patch literal 2136 zcmV-e2&eanP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01iz601li1-u9eV00007bV*G`2igk? z6b>lY1_CX>@2HM@dakSAh-}000NGNkl`dhw@Cv+u?y#wR3}qY2(YQuK0Noh8 zx`FSj+A4Cf4*-Mtx4Ref@7?wN_2&fuz##Wb0RSLS000OS0L;PzQ_zmLZ$Fp>fB@hB z{eJoS*Khs=%EL+h{P~mmv0wjrW;FsF_~Z8%zY&z>lltY$8>gmtF zKiqeHe@#B-*xrK2$EW}QzTK|Twov=_n9%(I;7Fiig0$VY|2x#)N}TrMvj0CMJfX(} zz@jN$NSs2ESS@lQAtEP$#RV!RPAx^MrkFiGKK*h70K+L>X^rXn{#q^V+XN$4gSy?W zsv1;|h!J%G7#64+!cwaywFyv6Ff=tNtq1~u1A$tJn7{$RSgO^aLbWCf^{0}Q5&#@V zP+NT|mCo&pZ-lK61y8CIA2tl#(8XbvcG}*2i*YtT=u4Un8>_F)p3r zwKS~joj#5<-%E`Zr_cUt1S7_LD3Sw!zZ5UE5mRGm*MgK`ou=Ii+D)aQ$4Kop`j&dF z+1p31ht##E*4K1bfzlY#Su(8C{BLP7N*6YlY)Y*uoU65uUJugRSkYlao#LGlpOJ=j z>;xxr@(?+tF1eE05vT$z8P-`sdy+`zd9}^;N(JA0J2*=5axMmrwf8ivliIySF0-Vw z08IocCP=9oRIRiy_UV^838i+c!W0rxA^`w}KtbQA2>?D4tU=YP8&QAC7blP3L_t|* z5L+8k`?3*~rUs=IryhoN9z`max=H4HHGUvM>QgBFoW0$GNQL?%wJ)3Er9?$rf3jj& zXYEtd;#m0>&+eL7xg3CD9RRE;Pyhf;QoNDOWLRf)EHlk9YXO1k3U({)$BNxb|22Z$ z3Mn1{tP(+OTLr8XyRoHcKi1MY_TFyoSV~(;a<-g!+((u4gW812!d@n9DcX;cWiI4w|H zgvDk|fUyzR{x+KpkJ^(wB~k#;R+vH&RZb0RI)Rc5>HwgB)O1$dyb4&+KB!)zg)POU z`B+ygid$GCQlCouc)MMHxrL%Iw-J<9oO*3Rz?P!@SWD;Fd%MMBSz^sIZHgBXoR*&B zIR~?(eKwJ@ILFwo)SL4f);!+NkD?ThA~^t<6(|6J?kV1Auv=k{XM{PQM4+%+X+Ku% zR{F0I>{dwe0AM0M2vlrulZB0%(ocQY{3&qjv>I#a9D8pcc`W%!F()Zr>>y&d(sr!a zt&BaEE3Dn(2r6W)65H>D-OBg{jor#zYXor;1nMYKk~ndV9zdV;Z^aZaS|pctiet9| zP%b`45eh|A``c{jMoBS%rC26efp>rL3Lj9+ z003Q6JPTmA!W_>Cb3TbcVYkwLtk|veUnAJ9km3QrM7XhAk*-PdcFj_(kH>LH{hli9M1@Ip3mL&{q-l) z002Z#3f{i`;HWIl^XE@Y0@zLQN{qc;zP#~#=g$Y&phyk?z9Oj54)Nobg5zUaZaMJg z_Y~^?o*Mnm8NY>1tS#mM7EbX(g0$Ti+MwC{H}bqO^5WmohG*VCU~=gB!7cSc^WM^V zJNmq?R)dOpM%5bJObdFud|~A%Vpee){lP5-65hCPIZ?56vE-z#kzQDHQq(?YlsC23 zCmnPj+`R-cQ{ikAviLj&*e)99ljj~X?c{cD_g?lDCi8SP+gQzjt$bEkK0H}&39 zyQcr$1WI~iO(@%<^CNtjYn+TVYfvM-sS&62IidMr-{04>wi|lyoOY@IT?NWR4d+bc zWyuG~+lh`i<)?Jg37i`Uaq0{{dH004mk06?Gs0D%GkK%f9%CjJA%H9?LN2OD_+ O0000G00001b5ch_0Itp) z=>Px*D@jB_RCwC$ow0G;Fc3vg9w*9Ni!vAB#Lm=$VkaJDij{fXfm(0_?%`6o3}=@* z;0%WY0!sqe1(x7@qu>t56Cn_v*ah&ZyX)_l3jj3d15E&c_5jcx0H8g9A^AuXOuYU1 zM30Y85|(Op21Z(pB%jeA|X`16l9x&n~z0YGfrdw6_Z zzFjW9FF#UTl)t}!m|om&*L7h~K7ACF0F0o$wce(;^NXOoUU;*R=GTF`f@8RBaO#*d z5MD4^ma#dSG2#K*i-f5v@+%hS{r$uI!*zwD#+t-_yda zr9gIk0O)c@tO#(5aZk}ZyXl4PRk58F9@r_bduh;~8Y?)ElkvkWP7Q$~$4M z1;Ep|7hOXaJhhcXy|Y4j8|20P;GGeEK0 zk5~@MG3QQ!nR;i>aEoQcLwhAO^UgLy?p`UAZjE_2_rBw;928>C%{|lWa&_-)s@%hf zG~!b?WU>nF4HZ0c4?zD(9s?+c0q@HuPkjFDcO@}8iWxNz$)L9 zg{SD9bt1oYRGBjM7ChW3b-EzXJxV#~=X-lZ*vvcIjGZQ3#R@aeNz7RYeh7d*+5-TE zn9~%u``p`Cj4l6YuPJzl+MMw`w=iN(0MO9h!{ckSCA-uf$iw|(lllthHifrxsMX%I zU=S?y+4a}k?Ye%TZK~X}@G2{u+Z5i)p;mjr22RswzX!g!<+^QZ+1j)4YAT%D6yD0g zHs2f1D+F*1?M>q$%jf|0Y(K9hDn9@)(O$|g3jlp$PIW2fCiiZsukaD)SFkwhk9)H4 zbiG3JwG6Ies@%W)iYuJk6yD0AR(pZ2RG!PS+2^v#JbtC%yje+3T_fUWi>;YG(cga=@yy?MlI^Sl-S zw0BwOc-GHr!9!Hs6nKb^4j!V5^&eu_6nKb+(q3wQMV^DH@3mRwp5@oLDew@DHrFD+ zTnj)S?EyfCd`|^DME;us#?&4jqBdtd&n=9Y696i-*WN=kxlz`hlvH_3)~8<9DphCQ zGs?fYL3vhvz;(m{jFegeNzPU3pf0plaM}>>+Z?o?f*) zM%P1>D)+Ew1rL#7zURS1)ctOnCA=~IWasrc%Unw{57BhvoPRcNw0=fKAtVDZ$@g^k zwa9s$+f9SfP!r%tb1f}{I)DSjoC0m;THFdR6=&KxYrJ`a@DTMG_tZT^!98 zFT2_UYroi(X5UOIV#3hDzo+KZ~o!b23jexBz!%RZ_(?Cl@aYBhnO_&wWV8MaHVjn$3D7y_4D>d=4OZ1H9@Oap(|yv`mQ!!{ zGBAlbwLGvW zdkF9B+LP0{@t$9n+vDw0zGC5#A098}Oa+{&e9z+l^0iM63-Z0?*tln$6bz}t@%xwT z1ZyuGKzo9IggmfJcxwZ-Q5M%AKiu>6+}~eWA2>z6haUoHXb%9;9st?{fKC1b$+tOoBg01K00000NkvXXu0mjf&!RSF diff --git a/docs/graphics/debugger_main.png b/docs/graphics/debugger_main.png index 20f897e425c924f4356442ab5c8a05ac7e6ac325..2aa7f9304955bed1a6fa2c2f9b7b2a9d42be22ed 100644 GIT binary patch literal 33300 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 YNG6(5$9*_-3x84do7yVn*R8_;7jT+4n*aa+ literal 30241 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 literal 4422 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

    -
    February 1999 - August 2010
    +
    February 1999 - November 2010
    The Stella Team
    Stella Homepage
    @@ -258,7 +258,7 @@
  • Emulates CX-22 / CX-80 style trackballs and Amiga Mouse using your computer's mouse
  • Support for real Atari 2600 controllers using the - Stelladaptor
  • + Stelladaptor
  • Support for the speech portion of a real AtariVox device connected to your PC using a USB adaptor
  • @@ -1937,7 +1937,7 @@
    -statedir <dir>
    - Set the directory in which to save state files. + Set the directory in which to access state files. @@ -1957,7 +1957,12 @@
    -eepromdir <dir>
    - Set the directory in which to save EEPROM files. + Set the directory in which to access EEPROM files. + + + +
    -cfgdir <dir>
    + Set the directory in which to access Distella config files. @@ -2504,7 +2509,7 @@

    Stella supports real Atari 2600 joysticks, paddles and driving controllers - using the Stelladaptor device.

    + using the Stelladaptor device.

    Stella can use up to two Stelladaptors; any extra ones are ignored. Stelladaptor devices will be automatically detected and configured. Devices diff --git a/src/debugger/CartDebug.cxx b/src/debugger/CartDebug.cxx index 9481621a0..4b4ab396f 100644 --- a/src/debugger/CartDebug.cxx +++ b/src/debugger/CartDebug.cxx @@ -737,13 +737,14 @@ string CartDebug::loadConfigFile(string file) buf >> directive; if(BSPF_startsWithIgnoreCase(directive, "ORG")) { + // TODO - figure out what to do with this buf >> hex >> start; -// TODO - figure out what to do with this } else if(BSPF_startsWithIgnoreCase(directive, "SKIP")) { + // For now, treat this as CODE buf >> hex >> start >> hex >> end; -// addDirective(CartDebug::SKIP, start, end, currentbank); + addDirective(CartDebug::CODE, start, end, currentbank); } else if(BSPF_startsWithIgnoreCase(directive, "CODE")) { diff --git a/src/macosx/Info-Stella.plist b/src/macosx/Info-Stella.plist index 148c63f84..aa1713f05 100644 --- a/src/macosx/Info-Stella.plist +++ b/src/macosx/Info-Stella.plist @@ -53,7 +53,7 @@ CFBundleSignature StLa CFBundleVersion - 3.2.1 + 3.3 NSMainNibFile SDLMain.nib NSPrincipalClass diff --git a/src/unix/stella.SlackBuild b/src/unix/stella.SlackBuild index 847221769..cbbeac76c 100644 --- a/src/unix/stella.SlackBuild +++ b/src/unix/stella.SlackBuild @@ -13,7 +13,7 @@ die() { exit 1 } -VERSION=3.2.1 +VERSION=3.3 ARCH=${ARCH-i486} BUILD=1 diff --git a/src/unix/stella.spec b/src/unix/stella.spec index 0205b5c2d..1e21d5b9d 100644 --- a/src/unix/stella.spec +++ b/src/unix/stella.spec @@ -1,5 +1,5 @@ %define name stella -%define version 3.2.1 +%define version 3.3 %define rel 1 %define enable_gl 1 @@ -108,6 +108,9 @@ rm -rf $RPM_BUILD_DIR/%{name}-%{version} %_datadir/icons/large/%{name}.png %changelog +* Mon Nov 15 2010 Stephen Anthony 3.3-1 +- Version 3.3 release + * Wed Aug 25 2010 Stephen Anthony 3.2.1-1 - Version 3.2.1 release diff --git a/src/win32/stella.rc b/src/win32/stella.rc index 029fb763a..31b805bf9 100755 --- a/src/win32/stella.rc +++ b/src/win32/stella.rc @@ -36,8 +36,8 @@ IDI_ICON ICON "stella.ico" // VS_VERSION_INFO VERSIONINFO - FILEVERSION 3,2,1,0 - PRODUCTVERSION 3,2,1,0 + FILEVERSION 3,3,0,0 + PRODUCTVERSION 3,3,0,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -55,12 +55,12 @@ BEGIN VALUE "Comments", "The multi-platform Atari 2600 emulator. Stella is released under the GPLv2." VALUE "CompanyName", "The Stella Team (http://stella.sourceforge.net)" VALUE "FileDescription", "Stella" - VALUE "FileVersion", "3.2.1" + VALUE "FileVersion", "3.3" VALUE "InternalName", "Stella" VALUE "LegalCopyright", "Copyright (C) 1995-2010 The Stella Team" VALUE "OriginalFilename", "Stella.exe" VALUE "ProductName", "Stella" - VALUE "ProductVersion", "3.2.1" + VALUE "ProductVersion", "3.3" END END BLOCK "VarFileInfo"