Just wanted to say hi :)

Page 1 of 2 1, 2  Next

View previous topic View next topic Go down

Just wanted to say hi :)

Post by Conn on Mon 1 Jul 2013 - 16:07

Hi,

RedScorpion introduced me to this forum and I wanted to say "hi" Very Happy 
Some of you may know me from the BS Zelda HP where especially Euclid and I had great success to make the bszelda games playable without a BS-X device. I now completely retired from hacking anything for bszelda (those games are from my view to 99% finished anyways) and therefore can offer my experiences in asm hacking for any project you run. I will not take a project of my own (10 years hacking bsz are enough ^^) but if you have problems to find an address or anything, just ask (here or mail: con.s@gmx.de) and I'll do my best to help you out Wink
avatar
Conn
                        
                        

Since : 2013-06-30

Back to top Go down

Re: Just wanted to say hi :)

Post by Conn on Tue 2 Jul 2013 - 7:27

Thanks for your feedback on AST! Yes, Euclid's editor and translation gave a great deal to get progress to this game.
If you need to find out more items palettes, check 7E/0990-7E0A00. Use the item and see whether you get a 22 (red), 24 (blue), 28 (green) in this block somewhere. The bomb palette e.g., was stored at 7E/09d3, so I was able to trace the hardcode in a second. You should find other codes here as well, e.g. 7e/099b will change the palette for staff of byrna. If you need anything more, just let me know Smile
avatar
Conn
                        
                        

Since : 2013-06-30

Back to top Go down

Re: Just wanted to say hi :)

Post by RedScorpion on Tue 2 Jul 2013 - 12:12

hi conn,

glad to hear you in this forum! Wink

Thanks

red
avatar
RedScorpion
                              
                              

Since : 2013-04-28

http://www.snes-projects.de

Back to top Go down

Re: Just wanted to say hi :)

Post by Erockbrox on Tue 2 Jul 2013 - 21:20

Welcome Conn. Smile

Its great to hear that there is another skilled ASM hacker here that is willing to lend a hand.

I have played Zelda AST and really liked it. Thanks for all of the work you did on that.

Maybe by having more skilled hackers here we can work together as a team to help finish these current hacks that we all would love to play.

-Erock
avatar
Erockbrox
          
          

Since : 2013-02-05

Back to top Go down

Re: Just wanted to say hi :)

Post by Conn on Wed 3 Jul 2013 - 15:39

Thanks for your feedback on AST Smile
I'm happy to lend a hand when someone runs into bugs with his project, but I'm not going to completely participate on a project as a team member (and thus there is also no need to credit me at all)... 10 years of hacking bszelda is absolutely enough Razz
But I am very happy to help you guyz out whenever there's trouble :d
avatar
Conn
                        
                        

Since : 2013-06-30

Back to top Go down

Re: Just wanted to say hi :)

Post by Conn on Sat 27 Jul 2013 - 18:55

One thing I'd like to mention since I already responded to some requests (e.g., pot destroy by Spane, icerod by Potentialing, blockmove by PuzzleDude, some stuff for PU).

If you ask me to create a code for anything and I find it useful to be implemented in other hacks as well I will post the code as open source. This works out great for small ASM as I posted them in the hack thread, but of course is not possible for specific hacks (e.g. mushroom in chest).

I only mention this since there was a request to hack something that was wished to be concealed so that only this hack will have that feature.
I'd like to bring ~all~ projects forward as far as it is in my power - so please respect that I do not hack exclusively and give away codes and addresses freely (as for my part creditfree) that the community may find useful Wink

But of course I will in NO case publish any of your work you send me (e.g. roms), I will only publish my code if I consider it useful.

So if you do not like to share the code that I implement for your hack, please ask somebody else.
avatar
Conn
                        
                        

Since : 2013-06-30

Back to top Go down

Re: Just wanted to say hi :)

Post by Puzzledude on Sun 28 Jul 2013 - 6:14

I agree. For instance I always wanted the feature, where you can move the pushable block infinite times. So now that we have the code, why should it be implemented only in Gates of Time. So anyone can use it in their hacks too, if they like the feature.

Puzzledude
   
   

Since : 2012-06-20

Back to top Go down

Re: Just wanted to say hi :)

Post by Conn on Sun 28 Jul 2013 - 16:16

I always favour if people work together, that advances all projects and accelerates the progress. In example, though I can code a little asm I hardly can do anything with HM.
This is also what I missed most when I hacked bszelda. There were some exceptions, like Roto, Dreamer_nom and Euclid but most of the time I've been on my own implementing stuff. In the end I didn't post any addresses anymore since nobody else in this community understood asm. This is different here and I really was impressed e.g., by that you were able to advance the icerod code and understood, or at least try to understand the asm.
Coding makes a lot more fun if you're in a team Wink
avatar
Conn
                        
                        

Since : 2013-06-30

Back to top Go down

Re: Just wanted to say hi :)

Post by Puzzledude on Sun 28 Jul 2013 - 16:53

I've read a first part of your tutorial on Asm. I understand the principle of it, but could not actually write something from zero. However the icerod seemed very adoptable, so I've seen an opportunity to use it differently, than what it was originally meant.
 
PS
At 4C298 there's a primary pointer for indoor sprites. Which points to 4D62E. All 2byte sprite pointers with the data are then in a 1671 block in hex from that address. I always wanted to move this data by 1MB to have more space for sprites. I can move all other indoor data, except sprites.
 
Here's the partial code
A8 B9 2E D6 85 00 (the 2E D6 is a local pointer), it's an offset from 40000. However the jsr and jsl routines are unable to bring it to the desired 140000 bank (if I move the data from 40000 it doesn't read sprites). It is very strange that there is no 09 byte (to make it 2E D6 09, which is 09D62E= snes, =4D62E pc). Then I could just change 09 to 29 and that would do it. But there's no 09 anywhere?

Puzzledude
   
   

Since : 2012-06-20

Back to top Go down

Re: Just wanted to say hi :)

Post by Conn on Sun 28 Jul 2013 - 17:19

I'll check it. BTW, is a music tutorial needed? You seem to also want to change music in GoT...

Hijack the code from pc 00/0100 9c2c01, make a jsr to unused space beginning at pc 00/09c2. Here make a jsl to an unused space region.
Then make a music table and hack something like:
ldx $040a ; load overworld screen number to X register
lda $table, x ; load music you want to have in that screen (dependence on x)

I just checked rechecked how to switch music banks (e.g. to have dungeon music outdoors or ending music in dungeons or whatever).
It should be:
lda #$FF
sta $2140
stz $012c
stz $0132
stz $0133
; then decide which bank:
Jsl $008913 -> load outoor bank
jsl $008925 -> load indoor bank
jsl $008931 -> load ending bank
;thereafter a
lda #$81
sta $4200

so far my small notes
avatar
Conn
                        
                        

Since : 2013-06-30

Back to top Go down

Re: Just wanted to say hi :)

Post by Puzzledude on Sun 28 Jul 2013 - 18:11

I'll test this out. However, I've already decided a while back to go with the same method as in Alttp. So the houses in the Village all have Lower volume (and thus the village song never resets to overworld music). Same with the forest. All the rest is overworld music.

Puzzledude
   
   

Since : 2012-06-20

Back to top Go down

Re: Just wanted to say hi :)

Post by Conn on Sun 28 Jul 2013 - 18:32

let's say you have a table. Screen 00=02 (overworld), screen 01=07 (kakariko), Screen 02=04 (bunny)...

your table will look like this, beginning from let's say pc 11/a000 = snes 23/a000

$23/a000 02 07 04

Now you need the code, let's say you're in screen 2:
ldx $040a ; now the screen number 02 is stored into X register
Now you need to get the music of screen 02
lda $23/a000,x (value of X is added to address - now the value at 23/a002 is loaded, which is a 07.
At the beginning it is complicated, but in the end it is not that hard.

-------------------------------------------------------
I checked your problem, it is the Data Bank register:

$09/C297 B9 2E D6    LDA $D62E,y[$09:D6D8]   A:00AA X:0008 Y:00AA D:0000 DB:09

You see the DB:09?

You need to set this to your new bank, guess it is 29 instead of 09:
Do this:
LDA #$29 ; load 29 into accumulator
PHA ; transfer the 29 into stack
PLB ; transfer stack into DB.

I tested this and it looks like this  
Code:

LDA #$29            A:FFFF X:0008 Y:00FF D:0000 DB:09
PHA                    A:FF29 X:0008 Y:00FF D:0000 DB:09                    
PLB                     A:FF29 X:0008 Y:00FF D:0000 DB:09
TAY                     A:FF29 X:0008 Y:00FF D:0000 DB:29
LDA $D62E,y[$29:D657]   A:FF29 X:0008 Y:0029 D:0000 DB:29

You see? instead of [$09:D6D8], now from bank 29 is loaded [$29:D657] (it is :d657 here because the y is now 29 instead of FF), so you need to regain the FF in the accumulator prior to TAY.
After your sprite transfer you of course need to set the stack to 09 again (hex a9 09 48 ab)
avatar
Conn
                        
                        

Since : 2013-06-30

Back to top Go down

Re: Just wanted to say hi :)

Post by Puzzledude on Sun 28 Jul 2013 - 19:21

Tested the sprites and I can't get it to work. Will test the music tomorrow.
 
This is what I did with sprites. First the entire block 1671 which starts at 4D62E was transfered to 14D62E. At 4C296, jsl to 14C296, which is 22 96 C2 29. At 14C296, AD 29 48 AB A8 B9 2E D6, which is lda29, pha, plb, tay, ldaD62E. Return code a9 09 48 ab after sprites code.
 
Maybe it is more complicated, since the first 300 block are actually secondary pointers (probably all corespond to 09 as well), and the actual data is then at 4D92E.
 
Will do some more testing tomorrow.

Puzzledude
   
   

Since : 2012-06-20

Back to top Go down

Re: Just wanted to say hi :)

Post by Conn on Sun 28 Jul 2013 - 19:48

At 14C296, AD 29
must be a a9 29, but guess it's a typo. Then there's a mistake you always need to watch. You have a c2 30 before at 4c290, which makes it a 2 byte read and cause a frameshift. It will read lda #$4829 instead lda #$29, PHA

To make it work:
at 04/c296: 22 96 C2 29
at 14/C296: e2 30 a9 29 48 ab c2 30 ad 8e 04 0a a8 b9 2e d6

Explanation:
e2 30: 1 byte read
lda 29, pha, plb (you know)
c2 30: re-enable 2 byte read
ad 8e 04 - lda $048e, 0a ASL A regain native value in accumulator (rewritten in your hack to 29), located at 4c292
a8: TAY transfer A to Y
b9 2e d6: LDA $D62E,y

After sprites are loaded: e2 30 a9 09 48 ab c2 30 (6b)
check before if it is 1 or 2 byte read, in case it is 2 byte read you need the e2 30 and then the c2 30, if it already is 1 byte read, then dismiss it.
-------------------------
By the way, the table you point to must be located at 14/d62e (the code now points there). (You could however also rewrite the pointer opcode b9 2e d6 to b9 00 d0 and paste your table beginning at 14/d000)

But for the pointer code itself it is of course not needed to place it at at 14/c296 (it is somewhere in the middle). You can make the jsl anywhere where it is free space (keeps an order in your rom). E.g. take a free ff ff area as I did with the icerod code or place it to 14/c200 or 14/c000 or whatever.
avatar
Conn
                        
                        

Since : 2013-06-30

Back to top Go down

Re: Just wanted to say hi :)

Post by Puzzledude on Mon 29 Jul 2013 - 5:40

I'll test this right away. I have the pointers at 14/d62e. Since there's enough room in the second MB, I've decided to keep everything on place, but 1MB shifted (for now).

Puzzledude
   
   

Since : 2012-06-20

Back to top Go down

Re: Just wanted to say hi :)

Post by Conn on Mon 29 Jul 2013 - 6:18

ok, check whether it works... I think you'd need also help with the music table (there's some more stuff needed like a check whether you're in the overworld).
Maybe you can send me your rom to con.s@gmx.de so I'll do this for you. Same is if you encounter further problems with the sprite bank, since I think I need to trace it then (it's hard to tell out of the text what the problems could be) Smile
avatar
Conn
                        
                        

Since : 2013-06-30

Back to top Go down

Re: Just wanted to say hi :)

Post by Puzzledude on Mon 29 Jul 2013 - 8:17

I've successfuly transfered the sprites. Very Happy This means we can have unlimited indoor sprites (actually there's a limit of how many an emulator can load without lagging).
 
I needed to add a 6B however on the end of the code.
1.) transfered 4D62E (block 1671) to 14D62E, while the old location was blanked to FF.
2.) at 04C296: A8 B9 2E D6 --> 22 96 C2 29 (pointer)
3.) at 14C296: E2 30 A9 29 48 AB C2 30 AD 8E 04 0A A8 B9 2E D6 6B (main code)
 
 
This code was not neccessary
After sprites are loaded: e2 30 a9 09 48 ab c2 30 (6b).
Probably because the entire sprite code has no routines. It just has a 2 byte pointers with no routines, and the actual data, ending normally with the final FF; where the room with no sprites is, so FF 00 FF is the end.
 
I even edited the soldiers in room 97 directly in hex and it works, to test if they are really read from the new place. All 3 soldiers in room 97 are now with the sword (before one was with sword, two were the non-agressive). This new location is of course not compatible with Hyrule Magic.
 
However if you want the custom location like 100000, all 320 secondary pointers need to be rewritten, since all of them correspond to D62E start by default and point to corresponding addresses.

------------------------------------------

EDIT
The original code however ended with 85 00. So it was A8 B9 2E D6 85 00. I've tested this and the main code:
E2 30 A9 29 48 AB C2 30 AD 8E 04 0A A8 B9 2E D6 85 00 6B, also works. I don't know if the 85 00 is significant, since this is a STA #$00.

Puzzledude
   
   

Since : 2012-06-20

Back to top Go down

Re: Just wanted to say hi :)

Post by Puzzledude on Mon 29 Jul 2013 - 8:58

It is intersting, but this code
E2 30 A9 29 48 AB C2 30 AD 8E 04 0A A8 B9 2E D6 E2 30 A9 09 48 AB C2 30 6B

actually resets everything, as if there's no code. Kind of a loop.

Puzzledude
   
   

Since : 2012-06-20

Back to top Go down

Re: Just wanted to say hi :)

Post by Conn on Mon 29 Jul 2013 - 9:10

This code was not neccessary
After sprites are loaded: e2 30 a9 09 48 ab c2 30 (6b).
Then it is not necessary to reload the native bank 09 into the data bank register. Seems like it is exclusively to load the sprites... so less asm needed

The original code however ended with 85 00.
It is very important but is executed after the 6b returns to 04/C29A: 85 00
So no need to double execute it at 14/c29a

It is intersting, but this code
E2 30 A9 29 48 AB C2 30 AD 8E 04 0A A8 B9 2E D6 E2 30 A9 09 48 AB C2 30 6B

actually resets everything, as if there's no code. Kind of a loop.
But of course! You set the db to 09 again before the sprites are transferred.
avatar
Conn
                        
                        

Since : 2013-06-30

Back to top Go down

Re: Just wanted to say hi :)

Post by Conn on Mon 29 Jul 2013 - 10:17

Here's a music patch for overworld for your consideration:

http://bszelda.zeldalegends.net/stuff/Con/music_got.zip

The coding:
pc: 00/0100: jsr to pc: 00/09d5 (after your sword charge no move)
pc: 00/095d: jsl to pc 11/a200, 60 (return jsr)

pc: 11/a200
TAX                    ; transfer native value to X
SBC #$0F           ; check if theme is in range 00-0F (overworld themes)    
BCC $04             ; continue if yes
STZ $012C         ; if no, set 012c to 00 and return to game
RTL                    
TXA                    ; regain native value X transfer to A
; now a comparison starts of themes you want to have replaced, this is overworld 02, lost woods 05, kakariko 07, dark world 09, skull woods 0d. This is necessary to not replace title screen, introduction, minigame, character selection, rabbit, rain, which is not on the map!
CMP #$02 ; if overworld theme is about to play jump to $A231 and replace, if not check if it is 05 and so forth.              
BNE $03    
JMP $A231  
CMP #$05                
BNE $03    
JMP $A231  
CMP #$07          
BNE $03    
JMP $A231  
CMP #$09          
BNE $03    
JMP $A231  
CMP #$0D            
BNE $03    
JMP $A231  
STZ $012C  ; if it is another theme (introduction, title screen -> return to game)
RTL                    
LDA $012C  ; if theme is already loaded return to game (address is loaded twice)
CMP $0131  
BNE $04    
STZ $012C  
RTL                  
LDX $040A         ; load screen number to X
LDA $23A300,x  ; select theme from table, in dependence of screen in X
STA $012C        ; play theme
STA $2140  
STA $0132
RTL  

The table at 11/a300 contains all 07 (kakariko). You simply need to replace these number by the number you like to have played.

The table beginning at 01/4343 needs to be an exact copy of the table 11/a300 to avoid a music reset everytime you switch screens.
avatar
Conn
                        
                        

Since : 2013-06-30

Back to top Go down

Re: Just wanted to say hi :)

Post by Puzzledude on Mon 29 Jul 2013 - 12:29

This is great. It is working. However SePH's rom is specific. There are actually 80 areas and some additinal like Master sword and Zora domain. So 9F in hex areas, rather then 40 currently. So there's no music in the dark world with the current version. But SePH's rom has no dark world, because of the "double layer" asm code (which is using dark world for another layer in the light world).
 
Also SePH's rom has all areas set to blank-out transit, while the tipical rom only in rare cases, usually where the music should actually be reloaded. So this is not so important in the typical rom. (Tested some more, it actually reloads all the time, so this is needed).
 
One other thing is the grid. Usually all areas are not small. A big area is actually 4 small ones. So I will test if the big area 04 only needs a 04 location, or also three others. For instance big area 00 is actually small area 00, 01, 08, 09. Will do some more testing.
 
Otherwise this code is great Smile , since it allows custom indoor music, while having special (village and forest) music outside. This was not possible before.
 
EDIT
Made some progress. I made a test file with Village song playing all over Dark world Razz , ironic isn't it. Suitable for a spoof maybe.

Puzzledude
   
   

Since : 2012-06-20

Back to top Go down

Re: Just wanted to say hi :)

Post by Puzzledude on Mon 29 Jul 2013 - 12:55

Quote
The table beginning at 01/4343 needs to be an exact copy of the table 11/a300 to avoid a music reset everytime you switch screens.

I've tested this out, but it seems it is always reseting in any case.

Puzzledude
   
   

Since : 2012-06-20

Back to top Go down

Re: Just wanted to say hi :)

Post by Conn on Mon 29 Jul 2013 - 13:34

ah, in this case you only need to extend the table with 40 bytes at 11/a300, then the darkworld is covered as well. But I think you already got it Wink

Yes, I already know the problem with this table. In Seph's rom I traced 01/4343. In native ALTTP I traced 01/43C3. So this is your desired place to start - please set in my patch the table that I changed at 01/4343 back to the native values.

I find 5 tables there, each 40 bytes:
01/4303 - start with rain?
01/4343 - Seph's value # overworld
01/4383 - ?????????
01/43C3 - normal overworld
01/4403 - normal dark world

I think here you find the themes played, while the second number counts, e.g. 9D=0D skull woods; 52=02 overworld. I do not know why it is 52 or 9d instead of 02 or 0d...

You must change the values at 01/43C3 +40 bytes overworld, and 01/4403 + 40 bytes dark world to avoid music reset (instead of 01/4343), these are the 80 screens.
The first table (01/4303 +40 bytes) has many 03 - I think this is the start when it rains. The second table at 01/4343 has a 07 as difference. I know that e.g. the lost woods get normal overworld music when you picked the master sword, and I think that also kakriko switches at some time from 07 to 02. So I think at any event the pointer to this table will be set to another value.
SePH's rom will not have rain or so, so that it keeps another pointer throughout the game.

Anyways, maybe you find out more, but what you need to do now is to extend the table at 11/a300 to contain also the dark world (80 bytes in total and copy these 80 bytes to 01/43C3 - 01/4442. This should avoid music reset.

Edit: found out more...
the game always loads the 80 screens (40 overworld, 40 dark world + 20 extra screens).
Point to 01/4303: start, rain (40 bytes)
Point to 01/4343: with kakariko theme, with Lost Woods theme (40 bytes)
Point to 01/4343: with kakariko theme, WITHOUT Lost Woods theme (40 bytes)
Point to 01/43C3: WITHOUT kakariko, WITHOUT Lost Woods (40 bytes)
Point to 01/4403: dark world (40 bytes)
Point to 01/4443: extra rooms (20 bytes)


You'll also notice that after 01/442 there is also a small table starting at 01/4443: 05 until 01/4462: 12. These are the values for Zophar Domain, Master Sword, etc.

So the game loads first 40 bytes of one of the 4 tables for the overworld (area 00-3f), next the 40 bytes for dark world (only one table, area 40-7f) and further 20 bytes for extra rooms (also only 1 table, area 80-9f).
Area code is the same that Hyrule magic uses.

I tested it from the start, first the 40 bytes for rain were loaded (01/4303), then the dark world was loaded (01/4403) and finally the 20 bytes from 01/4443, stored into ram at 7F/B500.
You need to change every table with your new music values to avoid reset!

SePH, I guess I need to recode your music patch so that there is no trigger that re-enables the music reset.
But there is no more than 40 screens due to the double layer, so no problem with that...?
avatar
Conn
                        
                        

Since : 2013-06-30

Back to top Go down

Re: Just wanted to say hi :)

Post by Puzzledude on Mon 29 Jul 2013 - 15:33

Perfect. Very Happy  Everything is working. So the main default place for music is at 143C3 with the block (80 in hex) for 80 areas. Plus 1F additional ones. Since there are 9F areas to load in HM. This is actually matching in hex. And the table at 143C3 must match the one 11A300. You can also find your area easily in the table. For instance area 5B (start in the dark world) = select block 5B+1 from 11A300 or 143C3 and that's your byte. This LDX opcode is smart actually.
 
This surely is the best music adoptation. Since now all variations are possible. Can even load dark world song into ligh world and vice versa. Can load custom music in overworld anywhere, while having any entrance set on custom indoor music. Very Happy This was of course not possible before.
 
Regarding plus areas
area 80 Master sword/Under bridge
area 81 Zora domain
areas 82-87 unused
area 88 Triforce shrine
89 Shadow of Zora domain (leaf shadows)
8A same as 89
8B-92 unused
93 Ovelay (in Triforce shrine)
94 Overaly (in Master sword/Under bridge = shadow)
95 Overlay (Mountain view down into valley)
96 Overlay (in area 5B, sunset background)
97 Overlay (fog in area 00)
98-9C unused
9D Overlay (fog)
9E Overlay (forest leaves, after pulling the M. sword)
9F Overlay (rain)

I will finalize the music and moving sprite codes shortly.

Puzzledude
   
   

Since : 2012-06-20

Back to top Go down

Re: Just wanted to say hi :)

Post by Puzzledude on Mon 29 Jul 2013 - 15:51

Decoded some further. All of the tables are importaint! Since you have 4 music parts of the game: Beginning music mode, Part1 music mode (after rescuing Zelda), Part2 music mode (after getting the master sword), Part3 music mode (after beating Agahnim and returning into light world from the dark world).
 
The table at 14C3C is for Part3 mode (all 80 areas, since dark world is after beating Agahnim).
 
The table at 14383 if for Part2 mode (thus only 40 long, since only for light world). Values are the same, but 52 is overworld map + ambient sound Stop, while 02 is overworld map song + ambient sound Nothing.
 
The table at 14343 is for Part1 mode (thus only 40 long).
The table at 14303 is for beginning mode (but it has heavy rain ambient sound, which is then 17 instead of 07. 07 is village song. 17 is village song with rain in the back.
 
Judging from your code, you only have one table for all events (parts of the game). This is better so, actually. But then all tables should match.
First 40 of custom code must match to all 4 above. But I think the beginning song is hardcoded to always play at the beginning regardless.

EDIT
I did some more testing. The music patch preserves the beginning song in the beginning mode, but brings part1, 2, 3 all into one. So once the custom table is filled it should be copied (block A0= all) to 143C3, but only block 40 to 14383 (this is a must thing otherwise music bug when pulling the master sword), and to 14343. This way all 3 parts are covered.

The code however will not effect 3 special entrances. Entrance 2C, 3C will always play forest when exited, entrance 39 will always play village. This is easy to fix though: 2C and 3C should be in the forest, entrance 39 in the village. I already have it so in GoT (well actually I haven't used 39 for its buggy nature, since it will reset the song by default, if multy entering and exiting - there's no sound).


Last edited by Puzzledude on Mon 29 Jul 2013 - 16:24; edited 1 time in total

Puzzledude
   
   

Since : 2012-06-20

Back to top Go down

Page 1 of 2 1, 2  Next

View previous topic View next topic Back to top


 
Permissions in this forum:
You cannot reply to topics in this forum