![]() |
![]() |
|
|
|
#1 |
|
AMOS Extensions Developer
Join Date: Jun 2007
Location: near Cambridge, UK
Age: 33
Posts: 943
|
Copper tricks
Hi,
I'm trying to do some tricks using BPL1MOD. I'd like to mirror a small section of the screen (say 10 lines) and then have the rest of the screen normal. I was hoping to move the mirrored bit up and down in the background whilst the credits ran. However, BPL1MOD doesn't appear to like being set as 0 multiple times before hitting the mirrored bit, and ends up corrupting the entire screen. Can anyone see what I am missing, or explain why this is happening? Code:
credits_copspr:
dc.w $0120,$0000 ;Sprite pointers 0-7, High & Low
dc.w $0122,$0000
dc.w $0124,$0000
dc.w $0126,$0000
dc.w $0128,$0000
dc.w $012A,$0000
dc.w $012C,$0000
dc.w $012E,$0000
dc.w $0130,$0000
dc.w $0132,$0000
dc.w $0134,$0000
dc.w $0136,$0000
dc.w $0138,$0000
dc.w $013A,$0000
dc.w $013C,$0000
dc.w $013E,$0000
credits_bplcon:
dc.w $2001,$fffe ;wait for scanline $20
dc.w $0102,$00EE ;BPLCON1
dc.w $0180,$0000 ;COLOR00
dc.w $0182,$0FFF ;COLOR01
dc.w $0184,$0036 ;COLOR02
dc.w $0186,$0058 ;COLOR03
dc.w $0188,$009D ;COLOR04
dc.w $018A,$03CF ;COLOR05
dc.w $018C,$0233 ;COLOR06
dc.w $018E,$0CDD ;COLOR07
dc.w $0190,$0788 ;COLOR08
dc.w $0192,$0565 ;COLOR09
dc.w $0194,$09E0 ;COLOR10
dc.w $0196,$0110 ;COLOR11
dc.w $0198,$08B0 ;COLOR12
dc.w $019A,$0580 ;COLOR13
dc.w $019C,$0230 ;COLOR14
dc.w $019E,$0BBA ;COLOR15
dc.w $2c01,$fffe ;wait for scanline $2C
credits_bplcop:
dc.w $00E0,$0000 ;BPL1PTH cleared & setup in program
dc.w $00E2,$0000 ;BPL1PTL cleared & setup in program
dc.w $00E4,$0000 ;BPL2PTH cleared & setup in program
dc.w $00E6,$0000 ;BPL2PTL cleared & setup in program
dc.w $00E8,$0000 ;BPL3PTH cleared & setup in program
dc.w $00EA,$0000 ;BPL3PTL cleared & setup in program
dc.w $00EC,$0000 ;BPL4PTH cleared & setup in program
dc.w $00EE,$0000 ;BPL4PTL cleared & setup in program
dc.w $00F0,$0000 ;BPL5PTH cleared & setup in program
dc.w $00F2,$0000 ;BPL5PTL cleared & setup in program
dc.w $00F4,$0000 ;BPL6PTH cleared & setup in program
dc.w $00F6,$0000 ;BPL6PTL cleared & setup in program
dc.w $0100,$5600 ;BPLCON0, 5 bitplanes, COLOR + DBLPLF
dc.w $0108,$0000 ;BPL1MOD
* dc.w $701B,$FFFE
* dc.w $0102,$00FF ;BPLCON1
dc.w $0108,$0000 ;BPL1MOD & repeat for entire screen
dc.w $0180,$00F0
dc.w $711B,$FFFE
* dc.w $0102,$00FE
dc.w $0108,$0000
dc.w $721B,$FFFE
* dc.w $0102,$00FD
dc.w $0108,$0000
dc.w $731B,$FFFE
* dc.w $0102,$00FC
dc.w $0108,$0000
dc.w $741B,$FFFE
* dc.w $0102,$0044
dc.w $0108,$0000
dc.w $751B,$FFFE
* dc.w $0102,$0033
dc.w $0108,$0000
dc.w $761B,$FFFE
* dc.w $0102,$0022
dc.w $0108,$0000
dc.w $771B,$FFFE
* dc.w $0102,$0011 ;background shifted -
dc.w $0108,$0000
dc.w $781B,$FFFE
* dc.w $0102,$0000 ;foreground shifted - 4,8-F,80,F0
dc.w $0108,$0000
dc.w $791B,$FFFE
* dc.w $0102,$0011
dc.w $0108,$0000
dc.w $7A1B,$FFFE
* dc.w $0102,$0022
dc.w $0108,$0000
dc.w $7B1B,$FFFE
* dc.w $0102,$0033
dc.w $0108,$0000
dc.w $7C1B,$FFFE
* dc.w $0102,$0044
dc.w $0108,$0000
dc.w $7D1B,$FFFE
* dc.w $0102,$0033
dc.w $0108,$0000
dc.w $7E1B,$FFFE
* dc.w $0102,$0022
dc.w $0108,$0000
dc.w $7F1B,$FFFE
* dc.w $0102,$0011
dc.w $0108,$0000
dc.w $801B,$FFFE
* dc.w $0102,$0000
dc.w $0108,$0000
dc.w $811B,$FFFE
* dc.w $0102,$0010
dc.w $0108,$0000
dc.w $821B,$FFFE
* dc.w $0102,$0020
dc.w $0108,$0000
dc.w $831B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$0000
dc.w $841B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$0000
dc.w $851B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$0000
dc.w $861B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$0000
dc.w $871B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$0000
dc.w $0180,$000F
dc.w $881B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$0000
dc.w $891B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$0000
dc.w $8A1B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$0000
dc.w $8B1B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$0000
dc.w $8C1B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$0000
dc.w $8D1B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$FFD8
dc.w $8E1B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$FFD8
dc.w $8F1B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$FFD8
dc.w $901B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$FFD8
dc.w $911B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$FFD8
dc.w $921B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$FFD8
dc.w $931B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$FFD8
dc.w $0180,$0F00
dc.w $941B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$0000
dc.w $951B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$0000
dc.w $961B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$0000
dc.w $971B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$0000
dc.w $981B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$0000
dc.w $991B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$FFD0
dc.w $9A1B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$FFD0
dc.w $9B1B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$FFD0
dc.w $0180,$0000 ;COLOR00
dc.w $FFDF,$FFFE ;wait for scanline $FF
dc.w $01A0,$0511 ;COLOR16
dc.w $01A2,$0900 ;COLOR17
dc.w $01A4,$0B11 ;COLOR18
dc.w $01A6,$0811 ;COLOR19
dc.w $01A8,$0A11 ;COLOR20
dc.w $01AA,$0711 ;COLOR21
dc.w $01AC,$0911 ;COLOR22
dc.w $01AE,$0B22 ;COLOR23
dc.w $01B0,$0A22 ;COLOR24
dc.w $01B2,$0B22 ;COLOR25
dc.w $01B4,$0922 ;COLOR26
dc.w $01B6,$0B33 ;COLOR27
dc.w $01B8,$0633 ;COLOR28
dc.w $01BA,$0855 ;COLOR29
dc.w $01BC,$0A66 ;COLOR30
dc.w $01BE,$0B88 ;COLOR31
dc.w $2601,$fffe ;wait for scanline $2C (PAL overscan)
dc.w $0100,$0200 ;BPLCON0, 0 bitplanes on
dc.w $ffff,$fffe ;wait forever (until next VBL)
Lonewolf10 |
|
|
|
|
|
|
|
Advertisement:
|
|
|
#2 |
|
is long gone
Join Date: Apr 2007
Location: London
Posts: 1,590
|
Hello Lonewolf10
![]() I don't think there's any problem setting bpl1mod to zero multiple times in your copper list - that shouldn't make a difference to anything. I knocked up a quick bit of test code here and successfully set bpl1mod to zero multiple times, then mirrored a 10 line section of the bitplane (bpl1mod set to minus the width of one line of bitplane data), before setting bpl1mod back to zero and getting the rest of the bitplane the "right way round" with no corruption. I tested this on a one bitplane image. I notice in your copper list that you're using five bitplanes - do you not then also have to set bpl2mod as well in this situation...? Don't forget that, per the HRM, bpl1mod set sets the modulo for odd bitplanes, bpl2mod set the modulo for the even ones. Last edited by pmc; 30 March 2011 at 08:38. |
|
|
|
|
|
#3 |
|
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 38
Posts: 12,025
|
One possibility is moves to bitplane pointers takes too long, BPLCON0 written after DDFSTRT hpos has already been passed (or in worst case, BPLCON0 already having some previous non-zero plane count..) Which will cause side-effects..
|
|
|
|
|
|
#4 | |||
|
AMOS Extensions Developer
Join Date: Jun 2007
Location: near Cambridge, UK
Age: 33
Posts: 943
|
Quote:
Quote:
![]() Quote:
This could be it. I also had similar problems with BPLCON1 (which is why it is present multiple times in my copperlist) when I was trying to create a sine-wave like effect up/down the screen using the hardware scroll. It too would corrupt the first few values giving unwanted results ![]() So what is the best way to fix this? Should I just throw in a few copperlist instructions at the start to effectively pause the copperlist and hopefully avoid corruption of the important ones? Regards, Lonewolf10 |
|||
|
|
|
|
|
#5 | ||
|
is long gone
Join Date: Apr 2007
Location: London
Posts: 1,590
|
Quote:
Quote:
|
||
|
|
|
|
|
#6 |
|
Oldskool Demo Coder
|
One usually sets bpl/spr datafetch related registers during horizontal blanking - after DDFSTOP and before DDFSTRT, so that they are ready when DMA starts at hpos $38 or similar. I'm not at all sure that all the moves after the $2001 and $2c01 are executed in time, try hpos $df on previous line. Note that some ECS machines doesn't tolerate as extreme h/vpos bounds as OCS. (I tested out max overscan on A600 in some thread...)
It should work with hpos $1b, but you don't set the screen size (DIW/DDF STRT/STOP), so I've no idea where the screen bounds are. I guess you set them in some init code? Is there a special reason you need this hpos instead of $07 or $01? It's absolutely positively possible to set modulo to 0 on each line, so the good news is that that's not the problem
__________________
Henrik. Programs Amiga demos, iPhone apps, websites, etc. A1000/512k - A500 2.0/040@28/4M/.5M slowmem/8M/SCSI/CF - A600 portable II 3.1/ACA630/WiFi/CF - 'A1700' 3.1/68060@80/64M/IDE-Fix Express/CF - etc."The difference between PC and Amiga is that 10yo PCs are worth $0. 20yo Amigas are worth a lot, and Amigas that are only 15yo cost a fortune!" If you like Portal 2, try my >> single player and cooperation maps << |
|
|
|
|
|
#7 |
|
AMOS Extensions Developer
Join Date: Jun 2007
Location: near Cambridge, UK
Age: 33
Posts: 943
|
Here is one.
The background display corrupts when a wait command (marked) is used straight after BPL1MOD is set. The scanline the wait command waits for doesn't matter (I tried a few different lines, from $38 to $6B). See attached pictures. Code:
credits_copspr:
dc.w $0120,$0000 ;Sprite pointers 0-7, High & Low
dc.w $0122,$0000
dc.w $0124,$0000
dc.w $0126,$0000
dc.w $0128,$0000
dc.w $012A,$0000
dc.w $012C,$0000
dc.w $012E,$0000
dc.w $0130,$0000
dc.w $0132,$0000
dc.w $0134,$0000
dc.w $0136,$0000
dc.w $0138,$0000
dc.w $013A,$0000
dc.w $013C,$0000
dc.w $013E,$0000
credits_bplcon:
dc.w $2001,$fffe ;wait for scanline $20
dc.w $0102,$00EE ;BPLCON1, cleared & setup in program
dc.w $0180,$0000 ;COLOR00
dc.w $0182,$0FFF ;COLOR01
dc.w $0184,$0036 ;COLOR02
dc.w $0186,$0058 ;COLOR03
dc.w $0188,$009D ;COLOR04
dc.w $018A,$03CF ;COLOR05
dc.w $018C,$0233 ;COLOR06
dc.w $018E,$0CDD ;COLOR07
dc.w $0190,$0788 ;COLOR08
dc.w $0192,$0565 ;COLOR09
dc.w $0194,$09E0 ;COLOR10
dc.w $0196,$0110 ;COLOR11
dc.w $0198,$08B0 ;COLOR12
dc.w $019A,$0580 ;COLOR13
dc.w $019C,$0230 ;COLOR14
dc.w $019E,$0BBA ;COLOR15
dc.w $2c01,$fffe ;wait for scanline $2C
credits_bplcop:
dc.w $00E0,$0000 ;BPL1PTH cleared & setup in program
dc.w $00E2,$0000 ;BPL1PTL cleared & setup in program
dc.w $00E4,$0000 ;BPL2PTH cleared & setup in program
dc.w $00E6,$0000 ;BPL2PTL cleared & setup in program
dc.w $00E8,$0000 ;BPL3PTH cleared & setup in program
dc.w $00EA,$0000 ;BPL3PTL cleared & setup in program
dc.w $00EC,$0000 ;BPL4PTH cleared & setup in program
dc.w $00EE,$0000 ;BPL4PTL cleared & setup in program
dc.w $00F0,$0000 ;BPL5PTH cleared & setup in program
dc.w $00F2,$0000 ;BPL5PTL cleared & setup in program
dc.w $00F4,$0000 ;BPL6PTH cleared & setup in program
dc.w $00F6,$0000 ;BPL6PTL cleared & setup in program
dc.w $0100,$5600 ;BPLCON0, 5 bitplanes, COLOR + DBLPLF
dc.w $0108,$0000 ;BPL1MOD
** dc.w $6B1B,$FFFE ;corrupts display when used! $381B - $6B1B
* dc.w $0102,$00FE
dc.w $0108,$0000
dc.w $0180,$0FF0
dc.w $6C1B,$FFFE
* dc.w $0102,$00FE
dc.w $0108,$0000
dc.w $6D1B,$FFFE
* dc.w $0102,$00FE
dc.w $0108,$0000
dc.w $6E1B,$FFFE
* dc.w $0102,$00FE
dc.w $0108,$0000
dc.w $6F1B,$FFFE
* dc.w $0102,$00FE
dc.w $0108,$0000
dc.w $701B,$FFFE
* dc.w $0102,$00FF ;BPLCON1
dc.w $0108,$0000 ;BPL1MOD & repeat for entire screen
dc.w $0180,$00F0
dc.w $711B,$FFFE
* dc.w $0102,$00FE
dc.w $0108,$0000
******
dc.w $721B,$FFFE
* dc.w $0102,$00FD
dc.w $0108,$0000
dc.w $731B,$FFFE
* dc.w $0102,$00FC
dc.w $0108,$0000
dc.w $741B,$FFFE
* dc.w $0102,$0044
dc.w $0108,$0000
dc.w $751B,$FFFE
* dc.w $0102,$0033
dc.w $0108,$0000
dc.w $761B,$FFFE
* dc.w $0102,$0022
dc.w $0108,$0000
dc.w $771B,$FFFE
* dc.w $0102,$0011 ;background shifted -
dc.w $0108,$0000
dc.w $781B,$FFFE
* dc.w $0102,$0000 ;foreground shifted - 4,8-F,80,F0
dc.w $0108,$0000
dc.w $791B,$FFFE
* dc.w $0102,$0011
dc.w $0108,$0000
dc.w $7A1B,$FFFE
* dc.w $0102,$0022
dc.w $0108,$0000
dc.w $7B1B,$FFFE
* dc.w $0102,$0033
dc.w $0108,$0000
dc.w $7C1B,$FFFE
* dc.w $0102,$0044
dc.w $0108,$0000
dc.w $7D1B,$FFFE
* dc.w $0102,$0033
dc.w $0108,$0000
***
dc.w $7E1B,$FFFE
* dc.w $0102,$0022
dc.w $0108,$0000
dc.w $7F1B,$FFFE
* dc.w $0102,$0011
dc.w $0108,$0000
dc.w $801B,$FFFE
* dc.w $0102,$0000
dc.w $0108,$0000
dc.w $811B,$FFFE
* dc.w $0102,$0010
dc.w $0108,$0000
dc.w $821B,$FFFE
* dc.w $0102,$0020
dc.w $0108,$0000
dc.w $831B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$0000
dc.w $841B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$0000
dc.w $851B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$0000
dc.w $861B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$0000
dc.w $871B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$0000
dc.w $0180,$000F
dc.w $881B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$0000
dc.w $891B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$0000
dc.w $8A1B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$0000
dc.w $8B1B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$0000
dc.w $8C1B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$0000
dc.w $8D1B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$FFD8
dc.w $8E1B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$FFD8
dc.w $8F1B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$FFD8
dc.w $901B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$FFD8
dc.w $911B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$FFD8
dc.w $921B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$FFD8
dc.w $931B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$FFD8
dc.w $0180,$0F00
dc.w $941B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$0000
dc.w $951B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$0000
dc.w $961B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$0000
dc.w $971B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$0000
dc.w $981B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$0000
dc.w $991B,$FFFE
* dc.w $0102,$0030
dc.w $0108,$FFB0
dc.w $0180,$0000 ;COLOR00
dc.w $FFDF,$FFFE ;wait for scanline $FF
dc.w $01A0,$0511 ;COLOR16
dc.w $01A2,$0900 ;COLOR17
dc.w $01A4,$0B11 ;COLOR18
dc.w $01A6,$0811 ;COLOR19
dc.w $01A8,$0A11 ;COLOR20
dc.w $01AA,$0711 ;COLOR21
dc.w $01AC,$0911 ;COLOR22
dc.w $01AE,$0B22 ;COLOR23
dc.w $01B0,$0A22 ;COLOR24
dc.w $01B2,$0B22 ;COLOR25
dc.w $01B4,$0922 ;COLOR26
dc.w $01B6,$0B33 ;COLOR27
dc.w $01B8,$0633 ;COLOR28
dc.w $01BA,$0855 ;COLOR29
dc.w $01BC,$0A66 ;COLOR30
dc.w $01BE,$0B88 ;COLOR31
dc.w $2601,$fffe ;wait for scanline $2C (PAL overscan)
dc.w $0100,$0200 ;BPLCON0, 0 bitplanes on
dc.w $ffff,$fffe ;wait forever (until next VBL)
Edit: I don't think this is important, but playfield 2 is set to be displayed infront of playfield 1. Regards, Lonewolf10 Last edited by Lonewolf10; 30 March 2011 at 21:25. Reason: Forgot some info |
|
|
|
|
|
#8 |
|
is long gone
Join Date: Apr 2007
Location: London
Posts: 1,590
|
Hmmmm... That's some weird stuff happening there.
It almost looks like corrupted bitplane data in that second pic. Does using a different hpos in the waits make any difference? As Photon says, I normally use $07, not sure if you need $1b for a special reason...? The (tested $381b range up to) $6b1b marked leads to corruption but is it all OK if the $6c1b wait that comes after this is left in place...? Like Toni and Photon suggest, maybe it's some kind of copper timing thing, perhaps more to do with the earlier waits and the copper can't "keep up" for want of a better way of putting it...? I've got no clue why you're seeing what you are - never seen anything like that happen in any of the code and copper things I've played around with. Interested to know what's going on and what the fix is. Last edited by pmc; 30 March 2011 at 21:47. |
|
|
|
|
|
|
|
Advertisement:
|
|
|
#9 | |||
|
AMOS Extensions Developer
Join Date: Jun 2007
Location: near Cambridge, UK
Age: 33
Posts: 943
|
Yup. After a week of trying to work it out for myself I decided to consult you guys
![]() Quote:
Quote:
Quote:
Regards, Lonewolf10 |
|||
|
|
|
|
|
#10 | ||
|
is long gone
Join Date: Apr 2007
Location: London
Posts: 1,590
|
Quote:
Quote:
Anyways, I hope you can get it fixed - if you sort it, let us know what happened. ![]() |
||
|
|
|
|
|
#11 |
|
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 38
Posts: 12,025
|
It is almost guaranteed your BPLCON0 write happens when DDFSTRT has already been passed in current line.
Easy to test: clear BPLCON0 at the start of line, set all bitplane parameters, wait for start of next line, set BPLCON0. In emulation you can use copper debugger to see copper timing ("od" in debugger) After copper debugging has been enabled and copper list has been executed at least once, o-debugger command also shows copper timing info. |
|
|
|
|
|
#12 | |
|
is long gone
Join Date: Apr 2007
Location: London
Posts: 1,590
|
Quote:
|
|
|
|
|
|
|
#13 | ||
|
AMOS Extensions Developer
Join Date: Jun 2007
Location: near Cambridge, UK
Age: 33
Posts: 943
|
Quote:
Quote:
![]() I was able to easily find the active copperlist (much easier and faster than using action replay - which doesn't always find the copperlist), and solve the problem. It was me ![]() I originally had the colours in 2 blocks. The 2nd block starting where I now added the BPLCON1 and other registers to the copperlist. I was changing the colours using the CPU (since the copperlist is also used elsewhere in the demo), but forgot to change the addresses. So instead of changing the colour values 16-31 in the copperlist, it was corrupting the wait, BPLCON0 and BPLCON1 instructions! ![]() Regards, Lonewolf10 |
||
|
|
|
|
|
#14 |
|
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 38
Posts: 12,025
|
There is no need to find anything. o1 = cop1lc, o2 = cop2lc.
There is also hardcore bus debugging mode, type vd to enable it, v <scanline> [<start cycle>] shows what happened in selected scanline in previous frame, cycle by cycle. Or pointless visual mode: v -3
|
|
|
|
|
|
#15 | |
|
AMOS Extensions Developer
Join Date: Jun 2007
Location: near Cambridge, UK
Age: 33
Posts: 943
|
Quote:
Thanks. I'm sure they'll come in useful in the future ![]() Regards, Lonewolf10 |
|
|
|
|
|
|
|
|
Advertisement:
|
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Want some A2000 tips 'n tricks! | 8bitbubsy | support.Hardware | 15 | 24 February 2011 04:30 |
| WinUAE tips & tricks | NewDeli | project.Green Amiga Alien GUIDES | 32 | 17 October 2009 14:21 |
| How was it done? (helping understand the coding tricks) | Shoonay | Coders. General | 25 | 05 May 2009 04:14 |
| Old joysticks, new tricks | twizzle | Retrogaming General Discussion | 14 | 29 April 2009 23:37 |
| Bizarre coding tricks | Ray Norrish | Coders. General | 6 | 01 January 2006 17:43 |