spartacus735 wrote:6502 assembly ? Prince of Persia SNES was created with a commodore 64 ?
To be precise, SNES uses 65816 assembly. From my experience, learning 6502 assembly will also suffice.
spartacus735 wrote:What is the tool for disassemble a SNES rom ? Sometime David show some code of the game like :
Code: Select all
main menu (palette?):
00:F7CE: a9 04 LDA #$04
00:F7D0: 20 61 f5 JSR $f561 ; set palette slot index =A + find palette $45=69
00:F7D3: a2 0c 00 LDX #$000c ; row 12 in the palette editor
00:F7D6: 20 73 f5 JSR $f573 ; seek row X in palette resource
00:F7D9: 4c 8c f5 JMP $f58c ; write palette (A rows)
What sort of software is it ?
If you are interested in learning the disassembly of the original PoP1 ROM, the first thing to do is download David's disassembly package:
viewtopic.php?f=122&t=3652
Study the "Prince_disasm.txt" file within the package. Skip through the header and start reading from line 383, that is offset x0000 in a headerless mod. Do a search for "shadow steal" and you will also see that my missing offset (x8BF5) is addressed at lines 15789 and 15790:
Code: Select all
01:8BF4: c9 06 CMP #$06
01:8BF6: f0 48 BEQ $8c40 ; level 7 room 16 shadow steal
00:8000 = x0000
00:9000 = x1000
00:A000 = x2000
00:B000 = x3000
00:C000 = x4000
00:D000 = x5000
00:E000 = x6000
00:F000 = x7000
01:8000 = x8000
01:9000 = x9000
01:A000 = xA000
01:B000 = xB000
01:C000 = xC000
01:D000 = xD000
01:E000 = xE000
01:F000 = xF000
02:8000 = x10000
02:9000 = x11000
02:A000 = x12000
02:B000 = x13000
02:C000 = x14000
02:D000 = x15000
02:E000 = x16000
02:F000 = x17000
By that conversion, 01:8C40 = x8C40
spartacus735 wrote:$E013, $C913, $A913, $8013, and $9013
it's like "$CC or $00" value in hexadecimal ?
Yes, those are values. If you are using Translhextion, then to search for $E013, you Ctrl+F, then find <bh:e0><bh:13> and for $C913 you do a Ctrl+F then find <bh:c9><bh:13> and so on...
I put $ in front of values to avoid confusing values with offsets. When doing a search in Translhextion, do not enter the $ sign. To be safe just search using the <bh:00><bh:00> format and replace the zeroes with the offsets you want to search for. If you are using a hex editor other than Translhextion, then the <bh:00><bh:00> most likely does not apply.
After David has successfully disassembled the ROM, the information needed for hex editing is all there. It is all a matter of taking the time to find it...