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

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.14  root       12: - Add fastload program header flag support to GEMDOS HD emulation
                     13:   (If PF_FASTLOAD flag is set, clear just BSS, not heap)
                     14: 
                     15: - Investigate what TOS version/functionality doesn't work for (Falcon)
                     16:   programs started from the DESKTOP/NEWDESK.INF and why, e.g:
1.1.1.11  root       17:        - Printing doesn't work with TOS versions v1.02 - v2.06
1.1.1.12  root       18:        - Colors in 2-plane VDI resolution are not set correctly
1.1.1.14  root       19:        - "Running" game preview and shareware versions crash
                     20:        - Fun's "Men at War" game or its intro don't start
                     21:        - "Push It" game crashes if auto-started
                     22:        - NoCrew: Aggressive Party II 128k combo ("Whirlpool") bombs
                     23:        - RG: "Sworm" & "Sky Fall" games want to access A: & B: when autostarted
                     24:        - JAM packer packed version of Tony Benett' "Virtual City" demo bombs
                     25:        - Sentry 2.2 packed version of Shadows' "Firestarter" demo bombs
                     26:        Note: last 3 programs can be autostarted fine with EmuTOS.
1.1.1.11  root       27:   Document that in manual (page) for the Hatari "autorun" feature.
                     28: 
1.1.1.15! root       29: - Related to above, investigate why TOS v1.04 crashes shortly after
        !            30:   GEM programs started with autorun feature are exited.  If programs
        !            31:   are started from TOS v1.04 desktop, there's no crash.
        !            32: 
1.1.1.11  root       33: - Keyboard detection sometimes fails when --fast-forward is enabled
                     34:   while TOS boots / game is loaded (e.g. Falcon Snake game packed
                     35:   with Sentry).
                     36: 
1.1.1.3   root       37: - Improve disk image formats support:
1.1.1.6   root       38:        - Support .DIM images created with the "Get sectors: used" option
1.1       root       39: 
1.1.1.8   root       40: - Real HD 6301 (keyboard processor of the ST) emulation.
1.1.1.4   root       41:   (Current special casing is enough for all known demos using 6301)
1.1       root       42: 
                     43: - Get the games/demos working that are marked as non-working in the manual.
                     44: 
1.1.1.11  root       45: - Improve TT and/or Falcon emulation, especially VIDEL, e.g:
                     46:   - Palette switching during screen drawing
1.1.1.15! root       47:   - Video timings for the Falcon Videl chip (60Hz support):
        !            48:     https://listengine.tuxfamily.org/lists.tuxfamily.org/hatari-devel/2016/07/msg00013.html
1.1.1.11  root       49:   - ST screen modes centering when Videl borders are enabled
1.1.1.12  root       50:   - Videl video register access (e.g. VIDEL_ScreenCounter_ReadByte()
                     51:     never changes the register value unless it had first specifically
                     52:     been written into):
                     53:     http://listengine.tuxfamily.org/lists.tuxfamily.org/hatari-devel/2013/02/msg00155.html
1.1.1.15! root       54:   - Emulate border color:
        !            55:     http://atari-forum.com/viewtopic.php?f=51&t=29098
1.1.1.4   root       56: 
1.1.1.5   root       57: - Add SCSI hard disk emulation for Falcon/TT mode.
1.1.1.4   root       58: 
1.1.1.12  root       59: - ACSI emulation doesn't work with TOS v3 (but works for TT/EmuTOS).
1.1.1.6   root       60: 
1.1.1.4   root       61: - Add SCC serial port emulation for Falcon/TT mode.
                     62: 
1.1.1.8   root       63: - DSP emulation / Falcon sound matrix:
1.1.1.7   root       64:        - Dsp SSI internal clock (is it used on falcon ?)
1.1.1.8   root       65:        - Verify DSP instructions cycle count, especially with external RAM
1.1.1.6   root       66: 
1.1.1.12  root       67: - FPU 80-bit precision mode (selected with FPUCW instruction, and
                     68:   extra instructions on 040), if there are programs depending on it.
                     69:   UAE core implements only support for 64-bit precision.  See "m68k
                     70:   FPU precision issue" thread on debian-68k mailing list for details.
                     71: 
1.1.1.9   root       72: - The "memvalid" system variables currently have to be patched in most cases.
                     73:   For improved compatibility (e.g. the game "Yolanda") it would be better to
                     74:   skip this step, but we then run into multiple other problems, see:
                     75:   http://listengine.tuxfamily.org/lists.tuxfamily.org/hatari-devel/2011/12/msg00123.html
1.1.1.15! root       76:   -> We should emulate the MMU memory bank configuration at $FF8001
1.1.1.9   root       77: 
                     78: 
1.1.1.10  root       79: Programs known as not fully functional (not an exhaustive list)
                     80: ---------------------------------------------------------------
1.1.1.9   root       81: 
                     82: Demos :
                     83:   - video : Omega - Full Overscan Screen, Phalanx Demo - Dragon,
                     84:        Dragonnels - Happy Island, Phaleon Demo - Future Minds,
                     85:        Decade Demo - Reset, TNT - Death Of The Left Border,
                     86:        Anomaly Demo - Menu, Delirious Demo IV - STE Detection,
                     87:        Ventura - Ultimate Dist, Syntax Terror - TCB, ICE - Kryos,
                     88:        ICE - Intruding, ICE - Jamcols, Extreme Rage, Paradox - XMas 2004,
                     89:        ICE - Space Tale, ICE - The Wave Of The Future, Snork - DNT Screen 1
                     90: 
                     91: Games :
1.1.1.12  root       92:   - ikbd : Superior 109 - Special Forces
1.1.1.9   root       93: 
1.1.1.6   root       94: 
                     95: Other potential Hatari functionality improvements
                     96: -------------------------------------------------
                     97: 
1.1.1.7   root       98: - Improved boot drive & partition handling code:
                     99:   - count partitions the same way in ACSI, IDE & GEMDOS
                    100:   - move BootDrive stuff from floppy.c e.g. to tos.c where NumDrives is
                    101: 
                    102: - Support harddisk write protection also for IDE & ACSI drives?
                    103: 
1.1.1.12  root      104: - Fix GST symbol table detection in debugger & gst2ascii.  Currently
                    105:   it will just process whatever it thinks the symbol table to
                    106:   contain (which output can mess the console).  MiNT binaries can
                    107:   contain GST symbol tables, so checking that isn't enough.
                    108: 
1.1.1.8   root      109: - Preliminary debugger work for the other features + cleanup:
                    110:        - Eval_Number() could take DSP/CPU flag like Eval_Range()
                    111:          does so that all commands taking numeric args can accept
                    112:          also symbol, variable & register names
                    113:        - Skip & tell user to rename any of the loaded symbols that
                    114:          have same name as internal Hatari variables
1.1.1.9   root      115:        - Change "" for expressions to {} so that quotes can
1.1.1.8   root      116:          be used for e.g. search strings?
                    117: 
1.1.1.11  root      118: - While Hatari debugger has many features that Steem one doesn't have,
                    119:   that also has debugging features missing from the Hatari debugger.
                    120: 
                    121:   These ones should be straightforward to implement:
1.1.1.9   root      122:        - Breakpoints on interrupts
1.1.1.8   root      123:        - Breaking on exceptions 2-8 vs. bombs vs. don't break.
                    124:           Hatari has only an option to break on address & bus errors
                    125:          & uninitialized exception handler.
1.1.1.12  root      126:        - Showing values both in different lengths and numeric bases.
1.1.1.8   root      127:          (In Hatari one gets latter with "evaluate" command, e.g. "e a0",
1.1.1.12  root      128:          and showing the value as long/word/byte requires ANDing it)
1.1.1.8   root      129:        - All register values being shown with above info
                    130:           (= Steem Register monitor)
                    131:        - info commands for PSG, MFP, FDC and IKBD register values
                    132:          (= Steem monitors for these)
1.1.1.11  root      133:        - Info command for "timings" i.e. cycles since HBL/VBL,
1.1.1.8   root      134:          timer values, video address & scanline
                    135:          (= Steem Timings view)
                    136:        - memory dump in text format
                    137:          (= Steem Text monitor)
                    138:         - Stack content display: m "a7-$40"-"a7"
                    139:          (= Steem Stack display)
                    140:        - Text string and binary values (hex) search
                    141:          (= widgets in Steem monitor windows)
                    142:        - Run for N cycles
1.1.1.11  root      143:          (Hatari 'continue' command accepts only instructions, not cycles)
                    144: 
1.1.1.8   root      145:   These are more complicated ones:
                    146:        - Monitoring reads & writes to specific address.  Hatari supports
1.1.1.15! root      147:          only tracing changes to values, not having breakpoints on
1.1.1.8   root      148:          reading values or writing the same value.  Slow
                    149:        - Showing breakpoints in instruction dumps.  Hatari breakpoints
                    150:          are more advanced than the trivial address breakpoints, so
                    151:          this would require adding efficient support for plain PC
                    152:          based breakpoints
                    153:        - Adding new symbol names for arbitrary addresses one at the time.
                    154:          Hatari debugger currently requires new symbols to be added to
                    155:          a file containing all the symbols + reloading that file
                    156:        - Memory dump that shows also disassembly and values
                    157:          in different bases
                    158:          (= Steem Memory monitor)
1.1.1.11  root      159: 
1.1.1.8   root      160:   Basic GUI debugger features:
                    161:        - Ability to open as many dump/info windows as wanted
1.1.1.11  root      162:          (hex/asm/mfp/video/sound/...) and have their content
1.1.1.8   root      163:          refreshed each time emulation is stopped.
                    164:        - A stop/run button and a debugger "step" button
                    165:        - Possibility to click to an address on dump window to define
                    166:          a simple PC breakpoint (or monitor memory on B/W/L accesses)
                    167:        - A way to search for hex/text in Hatari's RAM.
                    168: 
                    169: (See "Steem debugger features not in Hatari debugger"
1.1.1.11  root      170: on BerliOS hatari-devel mail thread for more info.)
1.1.1.8   root      171: 
                    172: - MonST debugger features missing from Hatari debugger
1.1.1.15! root      173:   (ones not already mentioned in Steem feature list):
1.1.1.8   root      174:        - Address breakpoints can have conditions that are evaluated
                    175:          only on that address
                    176:        - Marking breakpoint types in disassembly (<count> for counted
                    177:          ones, ? for conditional ones, * for others)
1.1.1.7   root      178:        - Shortcut command for telling to run until given
                    179:          (temporary) conditional breakpoint is hit
                    180:        - Running until code returns from ROM (exiting from super mode?)
                    181:        - Single stepping that skips Traps, Line-A, Line-F. And one that
1.1.1.8   root      182:          skips also BSRs and JSRs.  Run until RTS/RTE command
                    183:        - Saving full machine status (like registers) to history buffer
                    184:          each time debugger is entered (exception or breakpoint is hit)
                    185:          and viewing of that history
1.1.1.7   root      186:        - SP & SSP as CPU register names (active & supervisor stack)
                    187:        - Fill and copy memory command
1.1.1.8   root      188:        - Search for an address which disassembly output matches
                    189:          given instruction substring
                    190:        - User variables which values can be set & used in expressions
1.1.1.6   root      191: 
                    192: - Improved screen handling:
                    193:        - Line based screen change detection/checks:
                    194:                - blit only changed lines
                    195:                - simpler / faster (LED) overlay handling
                    196:        - x3 and x4 zooming routines for ST-Low resolution
                    197:        - Include some fancy zooming routines like 2xSaI or Super-Eagle
                    198: 
1.1.1.7   root      199: - Check/clean RS232 code:
                    200:        - polls at 2/20ms intervals and reads data byte at the time.
                    201:          SDL_Delay()s & fgetc() could be replaced (at least on unix)
                    202:          with select() and fread().  Or just remove the rs232 thread
                    203:          and use an interrupt for it...
                    204: 
                    205: - Improve directory handling:
                    206:        - Currently screenshots & anim go always to current dir,
                    207:          whereas memsave, sound recording, printer & midi & serial &
                    208:          output and log output go to file specified in config file.
                    209:          There should be support for setting also anim/screenshot
                    210:          directory / file name from config file (needs change also
                    211:          in screenSnapShot.c).
                    212:        - By default the directory config values should be empty in
                    213:          which case the code will at run-time decide to use current
                    214:          directory, but not modify the path config setting.
1.1.1.9   root      215: 
                    216: 
                    217: Bug reports
                    218: -----------
                    219: 
1.1.1.15! root      220: - Ishar 1, 2 & 3 and Hextracker freeze at start with Falcon emulation because
        !           221:   Videl screen address counter doesn't advance (its read & write IO functions
        !           222:   are no-ops, a regression from 2012 commit 22d3c9f30097).
1.1.1.9   root      223: 
                    224: - Problem: On real Falcon there is a minor feature in videl. You can simply
                    225:   fade whole screen to black, if you just clear the Horizontal Border End
                    226:   ($ffff8286) and start fading colors from 0 to 255 to $ffff9800 or vice versa.
                    227:        test <put picture to screen>
                    228:        move.w #255-1,d7
                    229:        moveq #0,d6
                    230:        .loop <vsync, stop#$2300>
                    231:        clr.w $ffff8286.w
                    232:        move.l d6,$ffff9800.w
                    233:        addq.l #1,d6
                    234:        dbf d7,.loop
                    235:   Now it does this exactly opposite direction, it fades bgcolor from 0 to 255.
                    236:   http://developer.berlios.de/bugs/?func=detailbug&bug_id=18002&group_id=10436
                    237: 
                    238: - To compare my real Falcon with Hatari on my Windows 7 PC, I make some short
                    239:   benchmarks with Kronos. The disk benchmark in Kronos runs in 1-2 minutes on
1.1.1.10  root      240:   my real Falcon. The same disk benchmark in Kronos under Hatari 1.5 runs
                    241:   longer than 20 minutes with GEMDOS emulation.  Only when I use the AltGr + X
                    242:   option, before the benchmark runs, then the disk benchmark in kronos is
                    243:   comparable fast as my 16MHz Falcon.
1.1.1.9   root      244:   http://developer.berlios.de/bugs/?func=detailbug&bug_id=18298&group_id=10436
1.1.1.10  root      245: 
                    246:   -> Hatari GEMDOS emulation needs to do a lot of extra kernel file & directory
                    247:      accesses which with current code seem unavoidable.  They're a problem only
                    248:      with test programs like Kronos, for those one should consider using
                    249:      harddisk image files instead.

unix.superglobalmegacorp.com

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