Users browsing this thread: 1 Guest(s)
The colosseum, temporary character , FF6LE and graphics change

#7
Posts: 3,971
Threads: 279
Thanks Received: 238
Thanks Given: 58
Joined: Oct 2011
Reputation: 65
Status
Tissue-aware
(10-30-2011, 03:46 PM)Angelo26 Wrote: Sounds like you're quite skilled creating custom events. Or at least, you know how to make ulty appear only in the WOR. Show us a video or two of your custom events!!! Laugh

Thanks..I did a lot of experimentation before being able to create events and the tutorials on this site helped me alot. I'll post a video as soon as I have something satisfying...

@Poco Loco: I might need help in the future to create characters sprites...I'm not very talented in that domain but I saw the tutorial you made and it should help.

Right now I'm stuck in the monsters graphics. I moved all the monsters graphics from $E97000 to the empty F1 bank to have more space for monster sprites and I changed a portion of the code in the ROM that check where this data is:

Code:
C1/20DC: 18           CLC
C1/20DD: 69 3F AE     ADC #$AE3F
C1/20E0: 65 26        ADC $26
C1/20E2: 85 61        STA $61
C1/20E4: E6 12        INC $12  
C1/20E6: E6 12        INC $12        (point to mould info bytes 3 and 4)
C1/20E8: A7 12        LDA [$12]  
C1/20EA: 8D 56 82     STA $8256      (save width/8 in 8256, and height/8 in 8257)
C1/20ED: AD A8 81     LDA $81A8      (get tile bank pointer)
C1/20F0: 0A           ASL
C1/20F1: 0A           ASL
C1/20F2: 0A           ASL            (multiply by 8)
C1/20F3: 85 64        STA $64
C1/20F5: 9C 54 82     STZ $8254
C1/20F8: FA           PLX            (retrieve X, which was monster formation # x 2)
C1/20F9: A5 16        LDA $16        (palette index)
C1/20FB: 9D 17 81     STA $8117,X
C1/20FE: 7B           TDC            (clear accumulator)
C1/20FF: E2 20        SEP #$20       (set 8-bit accumulator)
C1/2101: AD A9 81     LDA $81A9
C1/2104: 4A           LSR
C1/2105: 4A           LSR
C1/2106: 4A           LSR
C1/2107: 4A           LSR
C1/2108: 4A           LSR
C1/2109: 85 66        STA $66
C1/210B: A5 64        LDA $64
C1/210D: 18           CLC
C1/210E: 69 00        ADC #$00           (I think that's the graphics starting offset low byte)
C1/2110: 85 64        STA $64
C1/2112: A5 65        LDA $65
[b]C1/2114: 69 70        ADC #$70       (I think that's the graphics starting offset middle byte )
C1/2116: 85 65        STA $65
C1/2118: A5 66        LDA $66
[b]C1/211A: 69 E9        ADC #$E9       (I think that's the graphics starting offset high byte)
C1/211C: 85 66        STA $66
C1/211E: 60           RTS

I don't know much about assembly but I know that this function is part of a group of functions in the C1 bank that loads a monster graphics, palette, mould and position (x, y). I changed C1/2114 to 69 00 and C1/211A to 69 F1 so now it would point to $F10000 where I stored the graphics. I don't know yet if I have to change the 384 pointers stating at $D27200 (monster visual specifications). Those point to the start of the monster graphic and they are two bytes pointers. They are loaded in another subroutine of the C1 bank. The first one start at 00 00 so I don't think I would have have to change them. Maybe I'm totally off track but I'm experimenting.

To make a long story short I haven't check if the game loads the monster graphics properly but in FF3SE the palettes, molds and shapes of the monsters are good. The only thing I don't see is the detail of the monster...Anyway I downloaded the source code of FF3SE available on the net and changed the offset in the loading and saving functions of the program when you save a monster or load all the monsters. I also added 10000 bytes to the max available space to make sure I have enough room for extra sprites. The code simply doesn't compile and it's not due to the changes I made... I loaded the source in visual studio 2010 but I have an error that some file is missing when it compile... I'll try to check that later on...

On a another subject for my new WOB collosseum I found that:

Code:
Colliseum: Determine prize and monster based on item bet
C3/B22C:    7B          TDC
C3/B22D:    AD0502      LDA $0205       (item bet)
C3/B230:    C220        REP #$20      (16 bit memory/accum.)
C3/B232:    0A          ASL A
C3/B233:    0A          ASL A
C3/B234:    AA          TAX
C3/B235:    E220        SEP #$20      (8 bit memory/accum.)
C3/B237:    BF00B6DF    LDA $DFB600,X  (monster to face)
C3/B23B:    8D0602      STA $0206
C3/B23E:    BF02B6DF    LDA $DFB602,X  (item to win)
C3/B242:    8D0702      STA $0207
C3/B245:    BF03B6DF    LDA $DFB603,X  (mask item to win)
C3/B249:    8D0902      STA $0209
C3/B24C:    60          RTS

There are other subroutines concerning the item bet and with some assembly knowledge, I think it is possible to add a second list of item bet/item won/monster fought. You have to create a subroutine similar to this one and the game would branch to that subroutine if a certain bit is set/clear depending if you are before of after the start of the WOR. I don't know how you write that in assembly but I think it's possible...
  Find
Quote  



Messages In This Thread
RE: The colosseum, temporary character , FF6LE and graphics change - by madsiur - 10-30-2011, 07:42 PM

Forum Jump:

Users browsing this thread: 1 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite