Users browsing this thread: 2 Guest(s)
JavaScript 65816 disassembler

#1
Posts: 127
Threads: 8
Thanks Received: 21
Thanks Given: 12
Joined: Jan 2012
Reputation: 13
Status
None
I made this to disassemble snippets of code floating around in SNES ROMs. You paste the hex as text from a hex editor (bytes separated by spaces) and then disassemble!

It's very basic and limited, but it has the general functionality.

http://m06.webs.com/65816disassembler.html

Thought it might be of use to others, happy hacking!
  Find
Quote  

#2
Posts: 3,970
Threads: 279
Thanks Received: 236
Thanks Given: 58
Joined: Oct 2011
Reputation: 65
Status
Tissue-aware
Nice finding! Very basic but it could be useful for someone that want to dissasemble some parts of a game that the dissasemblies have not been published. It doesn't have the advantages of geiger's debugger where you can set up breakpoints and follow the code when it jump to another routine.

Edit: Well I just realized that you made this! You must have good programming skills to build a javascript dissasembler. That is excellent job!
You could improver your CSS however lol (I'm just kidding there)

2nd edit: It can produce garbage too because like if you do a AND with a constant (command 29) as an example, the parameter of command 29 can be 1 or two byes depending if the accumulator is set on 8 bit or 16 bit but your dissasembler consider the memory is always set on 16 bit. Nothing is perfect but nice work though.



  Find
Quote  

#3
Posts: 2,769
Threads: 88
Thanks Received: 24
Thanks Given: 87
Joined: Jun 2009
Reputation: 25
Status
None
nice job


"Sometimes ninjas do wrong to each other, and in dat way the force of tha earf' comes around da moon - and at that presence, da dirt, it overshadows the grass, so you're like, I can't cut dis grass, there's no sun comin' through. So in order to enable each other the two fruits have to look each other in da eye and understand we can only be right, as da ripe is wrong, you know what I mean?"

-HNIC
Quote  

#4
Posts: 127
Threads: 8
Thanks Received: 21
Thanks Given: 12
Joined: Jan 2012
Reputation: 13
Status
None
(02-12-2012, 01:49 PM)Madsiur Wrote: 2nd edit: It can produce garbage too because like if you do a AND with a constant (command 29) as an example, the parameter of command 29 can be 1 or two byes depending if the accumulator is set on 8 bit or 16 bit but your dissasembler consider the memory is always set on 16 bit.

Thank you for pointing this out. I added tracking of the status register/p register through SEP and REP. Then made proper parsing of CMP, CPX, CPY, LDA, LDX, LDY, BIT, SBC, ADC, AND and ORA that can all have 16 or 8-bit parameters dependent on the status register's bit 5 and 6 respectively.

I also changed the "label" comment for branches to a 16-bit pointer pointing to the target byte for readability. The pointer will be calculated relative to the offset.

Lastly I changed the input handling so machine code pasted will be stripped of spacing and any invalid characters and handled as hex, two characters at a time. Simply put; Spaces are no longer necessary and disregarded.

Thanks for the comments guys.

  Find
Quote  

#5
Posts: 831
Threads: 41
Thanks Received: 16
Thanks Given: 12
Joined: Nov 2009
Reputation: 18
Status
None
Say, are you proficient programming in assembly?! I've been looking for someone to help me find some code in FF6 that will allow me to expand the menus in battle. Would you be willing to help me?
Quote  

#6
Posts: 127
Threads: 8
Thanks Received: 21
Thanks Given: 12
Joined: Jan 2012
Reputation: 13
Status
None
(02-15-2012, 10:50 PM)Angelo26 Wrote: Say, are you proficient programming in assembly?! I've been looking for someone to help me find some code in FF6 that will allow me to expand the menus in battle. Would you be willing to help me?

I'm fair at assembly, I'll give it a shot Wink

What exactly do you want to expand in the battle menus?
  Find
Quote  

#7
Posts: 831
Threads: 41
Thanks Received: 16
Thanks Given: 12
Joined: Nov 2009
Reputation: 18
Status
None
(02-16-2012, 02:29 AM)m06 Wrote:
(02-15-2012, 10:50 PM)Angelo26 Wrote: Say, are you proficient programming in assembly?! I've been looking for someone to help me find some code in FF6 that will allow me to expand the menus in battle. Would you be willing to help me?

I'm fair at assembly, I'll give it a shot Wink

What exactly do you want to expand in the battle menus?

I created a patch and now I have a bug with it. If relm uses control on an enemy, when the menu with the monster abilities appear, the names of characters disappear. This is because I expanded spell names to 9 letters, and monster attacks to 16 letters.

The idea on fixing it is based on FF6's japanese retranslation project by ChrisRPG. I'd rather show a picture instead of explaining what needs to be done:

[Image: imgshk.png]

I also wish to expand the window size that holds the command names, to basically have commands of 9 letters fit into it (Dualcast instead of X-magic, Deathblow instead of blitz, etc.)
Quote  

#8
Posts: 127
Threads: 8
Thanks Received: 21
Thanks Given: 12
Joined: Jan 2012
Reputation: 13
Status
None
(02-16-2012, 08:20 AM)Angelo26 Wrote: I created a patch and now I have a bug with it.

I sent you my mail through pm. Please send me the hacked smc file or ips file so I can debug Smile

(02-16-2012, 08:20 AM)Angelo26 Wrote: [Image: imgshk.png]

I also wish to expand the window size that holds the command names, to basically have commands of 9 letters fit into it (Dualcast instead of X-magic, Deathblow instead of blitz, etc.)

Nice image! This might be a bit tricky though, I found the battle menu's to be drawn in bank C1, most likely in a subroutine of C1/403F but it's not clear to me how exactly the boxes are drawn. I'm guessing that positions and sizes of the boxes lie in data somewhere loaded through pointers and parsed. But I haven't found any documentation on this kind of data. I'll let you know if I encounter some info that might shed more light on this subject.
  Find
Quote  



Forum Jump:

Users browsing this thread: 2 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite