What is the current best tool for disassembling a standard Dreamcast 1ST_READ binary? Accuracy / completeness of the disassembly should weigh more than ease of use.
Use objdump. If you have a working DC dev. environment, you should already have it. Accurate and complete. sh-elf-objdump -b binary -m sh4 -EL -D --adjust-vma=0x8c010000 1ST_READ.BIN > disassembly.txt
Huh I'm having the opposite experience, I find it wicked easy with WinCE and a little more diffucult with KATANA binaries. Probably just me being unfamiliar with it though
For WinCE it works just out-of-the-box, you just need to select the SH4 CPU type in the dialog box. For Katana, you must specify the load address, which is usually 0x8C010000.
I do that and have a ram section set up too. Cpu: sh4, ram 16MB. It just seems like following the structure of the code is tricky because of how intermixed data+code are
I've also tried IDA, but I'm of the same opinion as @Mrneo240 regarding Katana binaries. I follow @MetalliC's advice here, but after everything loads, it always asks me to jump to the starting address and press 'c' to start the analysis, which only results in the first block being analyzed. I thought it would go through and map out the branches automatically for the most part.
I had mixed results too with IDA and Katana binaries. There seemed to be some sections that it just couldn’t figure out, which I suspect was the result of the binary being compiled with some amount of optimizations enabled. All that said, it was still useful.
in many cases you have to manually trace code execution and tell to IDA disassemble code (key C), or set subroutine (key P) there needed. or in more automated way - use some emulator, which can generate "trace log" files, and then parse it in IDA using scripts. speaking in general, such tasks require moderate tech skills. its not task for dummies there you can click here and there and everything will happen automagically