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

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: 
1.1.1.3   root       12: - Improve disk image formats support:
1.1.1.6   root       13:        - Add support for .STT images
                     14:          (created with the STEEM disk image program)
                     15:        - Add support for Pasti .STX images
                     16:          (See http://pasti.fxatari.com/)
                     17:        - Support .DIM images created with the "Get sectors: used" option
1.1       root       18: 
1.1.1.8   root       19: - Real HD 6301 (keyboard processor of the ST) emulation.
1.1.1.4   root       20:   (Current special casing is enough for all known demos using 6301)
1.1       root       21: 
1.1.1.8   root       22: - Finish upgrading the CPU core of Hatari to the latest WinUAE
                     23:   which has better cycle accuracy needed by some programs:
                     24:        - Integrate MMU emulation
                     25:        - Add Exception debugging support
                     26:        - Instead of calling Reset_Cold()/m68k_reset()/uae_reset()
                     27:          directly from newcpu.c, show user a notice (dialog)
                     28:          about what happened and let user do the reboot
                     29:          (see "Emulation reset, old-UAE vs. WinAUE core" mail-thread)
                     30:        - Update WinUAE core to its latest (a year newer) version
                     31:        - Fix & document cmdline options for selecting prefetch etc
                     32:          - GUI options for above
1.1       root       33: 
                     34: - Get the games/demos working that are marked as non-working in the manual.
                     35: 
1.1.1.6   root       36: - Improve TT and/or Falcon emulation, especially VIDEL
1.1.1.4   root       37: 
1.1.1.8   root       38: - TT/FastRAM support as some demos need >14MB
                     39: 
1.1.1.5   root       40: - Add SCSI hard disk emulation for Falcon/TT mode.
1.1.1.4   root       41: 
1.1.1.6   root       42: - ACSI emulation seems to be broken in TT mode.
                     43: 
1.1.1.4   root       44: - Add SCC serial port emulation for Falcon/TT mode.
                     45: 
1.1.1.8   root       46: - Some Falcon games/demos only work with 32 MHz CPU emulation.
                     47:   (might be due to timings problems (videl, DMA, cpu cycles, dsp cycles, ...))
1.1.1.6   root       48: 
1.1.1.7   root       49: - Fix falcon sound quality (sound is sometimes noisy)
1.1.1.8   root       50:   Sound is also toggling between nice to noise with some demos.
1.1.1.6   root       51: 
1.1.1.7   root       52: - Improve STE Microwire/LMC1992 emulation.
1.1.1.6   root       53: 
1.1.1.8   root       54: - DSP emulation / Falcon sound matrix:
1.1.1.7   root       55:        - Dsp SSI internal clock (is it used on falcon ?)
1.1.1.8   root       56:        - Verify DSP instructions cycle count, especially with external RAM
1.1.1.6   root       57: 
1.1.1.9 ! root       58: - The "memvalid" system variables currently have to be patched in most cases.
        !            59:   For improved compatibility (e.g. the game "Yolanda") it would be better to
        !            60:   skip this step, but we then run into multiple other problems, see:
        !            61:   http://listengine.tuxfamily.org/lists.tuxfamily.org/hatari-devel/2011/12/msg00123.html
        !            62: 
        !            63: 
        !            64: Programs known as not fully functionnal (not an exhaustive list)
        !            65: ----------------------------------------------------------------
        !            66: 
        !            67: Demos :
        !            68:   - video : Omega - Full Overscan Screen, Phalanx Demo - Dragon,
        !            69:        Dragonnels - Happy Island, Phaleon Demo - Future Minds,
        !            70:        Decade Demo - Reset, TNT - Death Of The Left Border,
        !            71:        Anomaly Demo - Menu, Delirious Demo IV - STE Detection,
        !            72:        Ventura - Ultimate Dist, Syntax Terror - TCB, ICE - Kryos,
        !            73:        ICE - Intruding, ICE - Jamcols, Extreme Rage, Paradox - XMas 2004,
        !            74:        ICE - Space Tale, ICE - The Wave Of The Future, Snork - DNT Screen 1
        !            75:   - cpu/timers : Pandemonium Demos - Mega 3D, Audio Art, UMD Intro
        !            76:   - ikbd : Dragonnels - Unlimited Bobs
        !            77: 
        !            78: Games :
        !            79:   - cpu/timers : FOF 42 - Subbuteo, Bolo, Final Conflict, The Ultimate Ride,
        !            80:        Treasure Trap
        !            81:   - ikbd : F29, Superior 109 - Special Forces, Warlock's Quest
        !            82: 
1.1.1.6   root       83: 
                     84: Other potential Hatari functionality improvements
                     85: -------------------------------------------------
                     86: 
1.1.1.7   root       87: - Improved boot drive & partition handling code:
                     88:   - count partitions the same way in ACSI, IDE & GEMDOS
                     89:   - move BootDrive stuff from floppy.c e.g. to tos.c where NumDrives is
                     90: 
                     91: - Support harddisk write protection also for IDE & ACSI drives?
                     92: 
1.1.1.8   root       93: - Preliminary debugger work for the other features + cleanup:
                     94:        - Eval_Number() could take DSP/CPU flag like Eval_Range()
                     95:          does so that all commands taking numeric args can accept
                     96:          also symbol, variable & register names
                     97:        - Skip & tell user to rename any of the loaded symbols that
                     98:          have same name as internal Hatari variables
1.1.1.9 ! root       99:        - Change "" for expressions to {} so that quotes can
1.1.1.8   root      100:          be used for e.g. search strings?
                    101: 
                    102: - Steem emulator debugging features missing from Hatari debugger.
                    103:   These should be straightforward to implement:
1.1.1.9 ! root      104:        - Breakpoints on interrupts
1.1.1.8   root      105:        - Breaking on exceptions 2-8 vs. bombs vs. don't break.
                    106:           Hatari has only an option to break on address & bus errors
                    107:          & uninitialized exception handler.
                    108:        - Showing values both in different lengts and numeric bases.
                    109:          (In Hatari one gets latter with "evaluate" command, e.g. "e a0",
                    110:          but that doesn't show the value as it were long/word/byte)
                    111:        - All register values being shown with above info
                    112:           (= Steem Register monitor)
                    113:        - info commands for PSG, MFP, FDC and IKBD register values
                    114:          (= Steem monitors for these)
                    115:        - Info command for "timings" i.e. cycles since  HBL/VBL,
                    116:          timer values, video address & scanline
                    117:          (= Steem Timings view)
                    118:        - memory dump in text format
                    119:          (= Steem Text monitor)
                    120:         - Stack content display: m "a7-$40"-"a7"
                    121:          (= Steem Stack display)
                    122:        - Text string and binary values (hex) search
                    123:          (= widgets in Steem monitor windows)
                    124:        - Disasm format options being changable at run-time
                    125:          (= Steem options)
                    126:        - Run for N cycles
                    127:          (Hatari continue command accepts only instructions, not cycles)
                    128:   These are more complicated ones:
                    129:        - Monitoring reads & writes to specific address.  Hatari supports
                    130:          only monitoring changes to values, not having breakpoints of
                    131:          reading values or writing the same value.  Slow
                    132:        - Showing breakpoints in instruction dumps.  Hatari breakpoints
                    133:          are more advanced than the trivial address breakpoints, so
                    134:          this would require adding efficient support for plain PC
                    135:          based breakpoints
                    136:        - Adding new symbol names for arbitrary addresses one at the time.
                    137:          Hatari debugger currently requires new symbols to be added to
                    138:          a file containing all the symbols + reloading that file
                    139:        - Memory dump that shows also disassembly and values
                    140:          in different bases
                    141:          (= Steem Memory monitor)
                    142:   Basic GUI debugger features:
                    143:        - Ability to open as many dump/info windows as wanted
                    144:          (hex/asm/mfp/video/sound/...) and have those content
                    145:          refreshed each time emulation is stopped.
                    146:        - A stop/run button and a debugger "step" button
                    147:        - Possibility to click to an address on dump window to define
                    148:          a simple PC breakpoint (or monitor memory on B/W/L accesses)
                    149:        - A way to search for hex/text in Hatari's RAM.
                    150: 
                    151: (See "Steem debugger features not in Hatari debugger"
                    152:  hatari-devel mail thread for more info.)
                    153: 
                    154: - MonST debugger features missing from Hatari debugger
                    155:   (ones not mentioned in Steem features):
                    156:        - Address breakpoints can have conditions that are evaluated
                    157:          only on that address
                    158:        - Marking breakpoint types in disassembly (<count> for counted
                    159:          ones, ? for conditional ones, * for others)
1.1.1.7   root      160:        - Shortcut command for telling to run until given
                    161:          (temporary) conditional breakpoint is hit
                    162:        - Running until code returns from ROM (exiting from super mode?)
                    163:        - Single stepping that skips Traps, Line-A, Line-F. And one that
1.1.1.8   root      164:          skips also BSRs and JSRs.  Run until RTS/RTE command
                    165:        - Saving full machine status (like registers) to history buffer
                    166:          each time debugger is entered (exception or breakpoint is hit)
                    167:          and viewing of that history
1.1.1.7   root      168:        - SP & SSP as CPU register names (active & supervisor stack)
                    169:        - Fill and copy memory command
1.1.1.8   root      170:        - Search for an address which disassembly output matches
                    171:          given instruction substring
                    172:        - User variables which values can be set & used in expressions
1.1.1.6   root      173: 
                    174: - Improved screen handling:
                    175:        - Direct 16-bit & 32-bit support for monochrome and VDI modes
                    176:          (currently they're converted through 8-bit surface)
                    177:        - Line based screen change detection/checks:
                    178:                - blit only changed lines
                    179:                - simpler / faster (LED) overlay handling
                    180:        - x3 and x4 zooming routines for ST-Low resolution
                    181:        - Include some fancy zooming routines like 2xSaI or Super-Eagle
                    182:        - Add support for hardware accelerated zooming with
                    183:          SDL YUV overlays or OpenGL
                    184: 
1.1.1.7   root      185: - Check/clean RS232 code:
                    186:        - polls at 2/20ms intervals and reads data byte at the time.
                    187:          SDL_Delay()s & fgetc() could be replaced (at least on unix)
                    188:          with select() and fread().  Or just remove the rs232 thread
                    189:          and use an interrupt for it...
                    190:        - The commented out rs232 stuff could be removed from gemdos.c
                    191:          (RS emulation is done at HW, not Gemdos level).
                    192: 
                    193: - Improve directory handling:
                    194:        - Currently screenshots & anim go always to current dir,
                    195:          whereas memsave, sound recording, printer & midi & serial &
                    196:          output and log output go to file specified in config file.
                    197:          There should be support for setting also anim/screenshot
                    198:          directory / file name from config file (needs change also
                    199:          in screenSnapShot.c).
                    200:        - By default the directory config values should be empty in
                    201:          which case the code will at run-time decide to use current
                    202:          directory, but not modify the path config setting.
1.1.1.9 ! root      203: 
        !           204: 
        !           205: Bug reports
        !           206: -----------
        !           207: 
        !           208: - When playing Tautology 2 I noticed the mod player sound goes in and out of
        !           209:   sync. fading into crackle and back. (Using Hatari 1.4 with TOS 4.04 on Mac
        !           210:   OS X 10.6.5)
        !           211:   http://developer.berlios.de/bugs/?func=detailbug&bug_id=17781&group_id=10436
        !           212: 
        !           213: - Problem: On real Falcon there is a minor feature in videl. You can simply
        !           214:   fade whole screen to black, if you just clear the Horizontal Border End
        !           215:   ($ffff8286) and start fading colors from 0 to 255 to $ffff9800 or vice versa.
        !           216:        test <put picture to screen>
        !           217:        move.w #255-1,d7
        !           218:        moveq #0,d6
        !           219:        .loop <vsync, stop#$2300>
        !           220:        clr.w $ffff8286.w
        !           221:        move.l d6,$ffff9800.w
        !           222:        addq.l #1,d6
        !           223:        dbf d7,.loop
        !           224:   Now it does this exactly opposite direction, it fades bgcolor from 0 to 255.
        !           225:   http://developer.berlios.de/bugs/?func=detailbug&bug_id=18002&group_id=10436
        !           226: 
        !           227: - To compare my real Falcon with Hatari on my Windows 7 PC, I make some short
        !           228:   benchmarks with Kronos. The disk benchmark in Kronos runs in 1-2 minutes on
        !           229:   my real Falcon. The same disk benchmark in Kronos under Hatari 1.5 runs any
        !           230:   longer than 20 minutes. Only when I use the AltGr + X option, before the
        !           231:   benchmark runs, then the disk benchmark in kronos is comparable fast as my
        !           232:   16MHz Falcon.
        !           233:   http://developer.berlios.de/bugs/?func=detailbug&bug_id=18298&group_id=10436

unix.superglobalmegacorp.com

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