Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Additional analysis of DATA to find asm code #83

Open
RetHunter3000 opened this issue Nov 26, 2024 · 3 comments
Open

Additional analysis of DATA to find asm code #83

RetHunter3000 opened this issue Nov 26, 2024 · 3 comments
Labels
enhancement New feature or request
Milestone

Comments

@RetHunter3000
Copy link

Very often does not disassemble the code, leaving it as a DATA.
If there are no undocumented 6502 CPU opcodes in the segment, then process as code. More games hide code adresses (like run from RAM etc.). Even simple NROM and CNROM games.
For example, I have to manually set the reset address to get the right part of the code. It's very time consuming.
As a simplified option, you can add forced processing via a command.
Thanks for the great work! Because even with version 0.2.2. I was able to fully disassemble Battletoads (AoROM 256kB). But it was a lot of manual work.

@RetHunter3000 RetHunter3000 added the enhancement New feature or request label Nov 26, 2024
@cornelk
Copy link
Member

cornelk commented Nov 30, 2024

Thanks for the feedback, I will have a look at Battletoads to see what can be improved.

@cornelk cornelk added this to the 0.3.0 milestone Nov 30, 2024
@RetHunter3000
Copy link
Author

Your disassembler dont work with code after JMP. For example in battletoads every 32 Kb part starts with code like this:
jmp (_var_0013) ; $8000 6C 13 00
jmp _label_e7b2 ; $8003 4C B2 E7
jmp _label_8326 ; $8006 4C 26 83
jmp _label_8313 ; $8009 4C 13 83
jmp _label_8dba ; $800C 4C BA 8D
jmp _label_d080 ; $800F 4C 80 D0
jmp _label_8033 ; $8012 4C 33 80
jmp _label_8316 ; $8015 4C 16 83
jmp _label_8319 ; $8018 4C 19 83
jmp _label_e6bc ; $801B 4C BC E6
jmp _label_e6d8 ; $801E 4C D8 E6
jmp _label_8f4a ; $8021 4C 4A 8F
jmp _label_eeb7 ; $8024 4C B7 EE
jmp _label_8376 ; $8027 4C 76 83
jmp _label_87aa ; $802A 4C AA 87
jmp _label_8566 ; $802D 4C 66 85
jmp _label_b563 ; $8030 4C 63 B5

So I see the only solution to this problem is to check the DATA parts to see if they are code.

@cornelk
Copy link
Member

cornelk commented Dec 5, 2024

I had a look at Battletoads and updated a related issue that will improve the output: #80

@cornelk cornelk modified the milestones: 0.3.0, 0.4.0 Dec 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants