Annotation of hatari/doc/todo.txt, revision 1.1.1.8

1.1       root        1: 
1.1.1.4   root        2: Hatari TO-DO list
                      3: =================
1.1       root        4: 
1.1.1.4   root        5: If you think that you can help with one of the TO-DO list items, please get
                      6: in touch with us.
1.1       root        7: 
1.1.1.6   root        8: 
1.1.1.4   root        9: Emulation improvements
                     10: ----------------------
1.1       root       11: 
                     12: - Improve FDC emulation (e.g. read-track and write-track commands do not work
                     13:   right yet).
                     14: 
1.1.1.3   root       15: - Improve disk image formats support:
1.1.1.6   root       16:        - Add support for .STT images
                     17:          (created with the STEEM disk image program)
                     18:        - Add support for Pasti .STX images
                     19:          (See http://pasti.fxatari.com/)
                     20:        - Support .DIM images created with the "Get sectors: used" option
1.1       root       21: 
1.1.1.8 ! root       22: - Real HD 6301 (keyboard processor of the ST) emulation.
1.1.1.4   root       23:   (Current special casing is enough for all known demos using 6301)
1.1       root       24: 
1.1.1.8 ! root       25: - Finish upgrading the CPU core of Hatari to the latest WinUAE
        !            26:   which has better cycle accuracy needed by some programs:
        !            27:        - Integrate MMU emulation
        !            28:        - Add Exception debugging support
        !            29:        - Instead of calling Reset_Cold()/m68k_reset()/uae_reset()
        !            30:          directly from newcpu.c, show user a notice (dialog)
        !            31:          about what happened and let user do the reboot
        !            32:          (see "Emulation reset, old-UAE vs. WinAUE core" mail-thread)
        !            33:        - Update WinUAE core to its latest (a year newer) version
        !            34:        - Fix & document cmdline options for selecting prefetch etc
        !            35:          - GUI options for above
1.1       root       36: 
                     37: - Get the games/demos working that are marked as non-working in the manual.
                     38: 
1.1.1.6   root       39: - Improve TT and/or Falcon emulation, especially VIDEL
1.1.1.4   root       40: 
1.1.1.8 ! root       41: - TT/FastRAM support as some demos need >14MB
        !            42: 
1.1.1.5   root       43: - Add SCSI hard disk emulation for Falcon/TT mode.
1.1.1.4   root       44: 
1.1.1.6   root       45: - ACSI emulation seems to be broken in TT mode.
                     46: 
1.1.1.4   root       47: - Add SCC serial port emulation for Falcon/TT mode.
                     48: 
1.1.1.8 ! root       49: - Some Falcon games/demos only work with 32 MHz CPU emulation.
        !            50:   (might be due to timings problems (videl, DMA, cpu cycles, dsp cycles, ...))
1.1.1.6   root       51: 
1.1.1.7   root       52: - Fix falcon sound quality (sound is sometimes noisy)
1.1.1.8 ! root       53:   Sound is also toggling between nice to noise with some demos.
1.1.1.6   root       54: 
1.1.1.7   root       55: - Improve STE Microwire/LMC1992 emulation.
1.1.1.6   root       56: 
1.1.1.8 ! root       57: - DSP emulation / Falcon sound matrix:
1.1.1.7   root       58:        - Dsp SSI internal clock (is it used on falcon ?)
1.1.1.8 ! root       59:        - Verify DSP instructions cycle count, especially with external RAM
1.1.1.6   root       60: 
                     61: 
                     62: Other potential Hatari functionality improvements
                     63: -------------------------------------------------
                     64: 
1.1.1.7   root       65: - Improved boot drive & partition handling code:
                     66:   - count partitions the same way in ACSI, IDE & GEMDOS
                     67:   - move BootDrive stuff from floppy.c e.g. to tos.c where NumDrives is
                     68: 
                     69: - Support harddisk write protection also for IDE & ACSI drives?
                     70: 
1.1.1.8 ! root       71: - Preliminary debugger work for the other features + cleanup:
        !            72:        - All DebugUI invocations should give reason for it
        !            73:          (exception, breakpoint...)
        !            74:        - All parsing functions should return error code on error
        !            75:        - Eval_Number() could take DSP/CPU flag like Eval_Range()
        !            76:          does so that all commands taking numeric args can accept
        !            77:          also symbol, variable & register names
        !            78:        - Skip & tell user to rename any of the loaded symbols that
        !            79:          have same name as internal Hatari variables
        !            80:        - Change "" for expressions to {} so that quotes can
        !            81:          be used for e.g. search strings?
        !            82: 
        !            83: - Steem emulator debugging features missing from Hatari debugger.
        !            84:   These should be straightforward to implement:
        !            85:        - Breakpoints on iterrupts
        !            86:        - Breaking on exceptions 2-8 vs. bombs vs. don't break.
        !            87:           Hatari has only an option to break on address & bus errors
        !            88:          & uninitialized exception handler.
        !            89:        - History of executed instructions and how many cycles they took
        !            90:          (= Steem History view & Trace info)
        !            91:        - Showing values both in different lengts and numeric bases.
        !            92:          (In Hatari one gets latter with "evaluate" command, e.g. "e a0",
        !            93:          but that doesn't show the value as it were long/word/byte)
        !            94:        - All register values being shown with above info
        !            95:           (= Steem Register monitor)
        !            96:        - info commands for PSG, MFP, FDC and IKBD register values
        !            97:          (= Steem monitors for these)
        !            98:        - Info command for "timings" i.e. cycles since  HBL/VBL,
        !            99:          timer values, video address & scanline
        !           100:          (= Steem Timings view)
        !           101:        - memory dump in text format
        !           102:          (= Steem Text monitor)
        !           103:         - Stack content display: m "a7-$40"-"a7"
        !           104:          (= Steem Stack display)
        !           105:        - Text string and binary values (hex) search
        !           106:          (= widgets in Steem monitor windows)
        !           107:        - Disasm format options being changable at run-time
        !           108:          (= Steem options)
        !           109:        - Run for N cycles
        !           110:          (Hatari continue command accepts only instructions, not cycles)
        !           111:   These are more complicated ones:
        !           112:        - Monitoring reads & writes to specific address.  Hatari supports
        !           113:          only monitoring changes to values, not having breakpoints of
        !           114:          reading values or writing the same value.  Slow
        !           115:        - Showing breakpoints in instruction dumps.  Hatari breakpoints
        !           116:          are more advanced than the trivial address breakpoints, so
        !           117:          this would require adding efficient support for plain PC
        !           118:          based breakpoints
        !           119:        - Adding new symbol names for arbitrary addresses one at the time.
        !           120:          Hatari debugger currently requires new symbols to be added to
        !           121:          a file containing all the symbols + reloading that file
        !           122:        - Memory dump that shows also disassembly and values
        !           123:          in different bases
        !           124:          (= Steem Memory monitor)
        !           125:   Basic GUI debugger features:
        !           126:        - Ability to open as many dump/info windows as wanted
        !           127:          (hex/asm/mfp/video/sound/...) and have those content
        !           128:          refreshed each time emulation is stopped.
        !           129:        - A stop/run button and a debugger "step" button
        !           130:        - Possibility to click to an address on dump window to define
        !           131:          a simple PC breakpoint (or monitor memory on B/W/L accesses)
        !           132:        - A way to search for hex/text in Hatari's RAM.
        !           133: 
        !           134: (See "Steem debugger features not in Hatari debugger"
        !           135:  hatari-devel mail thread for more info.)
        !           136: 
        !           137: - MonST debugger features missing from Hatari debugger
        !           138:   (ones not mentioned in Steem features):
        !           139:        - Address breakpoints can have conditions that are evaluated
        !           140:          only on that address
        !           141:        - Marking breakpoint types in disassembly (<count> for counted
        !           142:          ones, ? for conditional ones, * for others)
1.1.1.7   root      143:        - Shortcut command for telling to run until given
                    144:          (temporary) conditional breakpoint is hit
                    145:        - Running until code returns from ROM (exiting from super mode?)
                    146:        - Single stepping that skips Traps, Line-A, Line-F. And one that
1.1.1.8 ! root      147:          skips also BSRs and JSRs.  Run until RTS/RTE command
        !           148:        - Saving full machine status (like registers) to history buffer
        !           149:          each time debugger is entered (exception or breakpoint is hit)
        !           150:          and viewing of that history
1.1.1.7   root      151:        - SP & SSP as CPU register names (active & supervisor stack)
                    152:        - Fill and copy memory command
1.1.1.8 ! root      153:        - Search for an address which disassembly output matches
        !           154:          given instruction substring
        !           155:        - User variables which values can be set & used in expressions
1.1.1.6   root      156: 
                    157: - Improved screen handling:
                    158:        - Direct 16-bit & 32-bit support for monochrome and VDI modes
                    159:          (currently they're converted through 8-bit surface)
                    160:        - Line based screen change detection/checks:
                    161:                - blit only changed lines
                    162:                - simpler / faster (LED) overlay handling
                    163:        - x3 and x4 zooming routines for ST-Low resolution
                    164:        - Include some fancy zooming routines like 2xSaI or Super-Eagle
                    165:        - Add support for hardware accelerated zooming with
                    166:          SDL YUV overlays or OpenGL
                    167: 
1.1.1.7   root      168: - Check/clean RS232 code:
                    169:        - polls at 2/20ms intervals and reads data byte at the time.
                    170:          SDL_Delay()s & fgetc() could be replaced (at least on unix)
                    171:          with select() and fread().  Or just remove the rs232 thread
                    172:          and use an interrupt for it...
                    173:        - The commented out rs232 stuff could be removed from gemdos.c
                    174:          (RS emulation is done at HW, not Gemdos level).
                    175: 
                    176: - Improve directory handling:
                    177:        - Currently screenshots & anim go always to current dir,
                    178:          whereas memsave, sound recording, printer & midi & serial &
                    179:          output and log output go to file specified in config file.
                    180:          There should be support for setting also anim/screenshot
                    181:          directory / file name from config file (needs change also
                    182:          in screenSnapShot.c).
                    183:        - By default the directory config values should be empty in
                    184:          which case the code will at run-time decide to use current
                    185:          directory, but not modify the path config setting.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.