TV Noise by Les Sucres en Morceaux [web]
[nfo]
|
||||||||
---|---|---|---|---|---|---|---|---|
|
||||||||
|
popularity : 59% |
|||||||
alltime top: #9630 |
|
|||||||
added on the 2010-11-22 08:36:25 by Supersly |
popularity helper
comments
:)
rulez added on the 2010-11-22 08:52:48 by Optimus
:)
Yeah baby.
too late noise :D
Well done!
any improvement (except double the size) to this?
glöp
:)
wow, cool noise! =]
.
noisy noise :D
wow
size does not matter !
goddess, i'd like to touch a CPC once again.
goddess, i'd like to touch a CPC once again.
teheres kolozrz!
BUNT!
"any improvement (except double the size) to this?"(wysiwtf)
Many ones, you should run it :)
- Fullscreen
- Does not crash
- Start faster
...and the 256 bytes version is really nicer (with sound).
A very small one just for you: 32 Bytes (better in MODE 2)
Many ones, you should run it :)
- Fullscreen
- Does not crash
- Start faster
...and the 256 bytes version is really nicer (with sound).
A very small one just for you: 32 Bytes (better in MODE 2)
Code:
You can replace "127" with "200" or "201" to get interesting textures. Sorry I can't to make shorter un Basic ;)2 PRINT CHR$(RND+127);:OUT &BD00,RND*9:RUN
Totally awesome. How do you do it? Open Border in Basic! aye! Respect.
noise
Real screenshots:
128b
256b
128b
256b
stop it
.
@sly: A mon tour... ;)
Pour gagné encore un peu, utilise le nom du fichier basic pour y inserer tes DATAs. Par exemple, cela permet de descendre le fichier TV-128.BAS de 128 bytes a 112 bytes.
Pour gagné encore un peu, utilise le nom du fichier basic pour y inserer tes DATAs. Par exemple, cela permet de descendre le fichier TV-128.BAS de 128 bytes a 112 bytes.
Code:
Edit 1
...FOR x=1 TO 5:READ a,b:OUT &BC00,a:OUT &BD00,b:NEXT:WHILE 1:OUT &BD00,RND*255:POKE RND*&FFF+&C000,RND*255:WEND:DATA 9,1,1,48,2,50,4,24,13,0
a modifié en:
...FOR x=1 TO 5:OUT &BC00,peek(&A709+x)-64:OUT &BD00,peek(&A70E+x)-32:NEXT:WHILE 1:OUT &BD00,RND*255:POKE RND*&FFF+&C000,RND*255:WEND
puis:
save"IABDM!PR.8
run"IABDM!PR.8
I love this idea (even if I consider it as cheating a little bit), but I didn't success to run it... can you verify the peek adress ? Are they the same on 6128 / 464 ? With or withour a RAMcard ? Your cheat could allow to attribute the 4 colours in mode 1 and maybe the raster of the 256b version.
Testé sur un 6128 sans extension et WinApe 2.0 Alpha 17
Joys of basic sizecoding...
I believe there are ways to do more :)
* Hex numbers may take more or less space than decimal ones depending on the number. I know that decimal 0 to 9 take only 1 byte, but numbers above that take 3 bytes each.
* Using variable for numbers used often (BD00) may get interesting too. Bonus if you use the same var for two things or more.
* The next step is using 'invalid' tokens. For example, with the line above, it should be possible to split it in two smaller lines just between the NEXT and the WHILE, and use a GOTO instead of the while/wend. But of course this takes more space because it's two lines. So, make the first one a bit shorter, and the opcode for : and NEXT will also serve as the header for the next line. Good luck figuring out line numbers after that.
* If you start playing with peek and pokes, it is also possible to automodify the code and/or read from it. For example a 'GOTO 1' could become a 'WHILE 1' if you poke at the right place :).
* Setting video mode and inks are done smaller with printing control chars (in catalog mode :)). And you can then reuse the chars as data for something else :)
Mh... maybe I should do my ownversion with all this...
I believe there are ways to do more :)
* Hex numbers may take more or less space than decimal ones depending on the number. I know that decimal 0 to 9 take only 1 byte, but numbers above that take 3 bytes each.
* Using variable for numbers used often (BD00) may get interesting too. Bonus if you use the same var for two things or more.
* The next step is using 'invalid' tokens. For example, with the line above, it should be possible to split it in two smaller lines just between the NEXT and the WHILE, and use a GOTO instead of the while/wend. But of course this takes more space because it's two lines. So, make the first one a bit shorter, and the opcode for : and NEXT will also serve as the header for the next line. Good luck figuring out line numbers after that.
* If you start playing with peek and pokes, it is also possible to automodify the code and/or read from it. For example a 'GOTO 1' could become a 'WHILE 1' if you poke at the right place :).
* Setting video mode and inks are done smaller with printing control chars (in catalog mode :)). And you can then reuse the chars as data for something else :)
Mh... maybe I should do my ownversion with all this...
@Chiourme : your trick does work only on a nude CPC. A RAMcard moves the filename adress.
@PulkoMandy : I tried many things yet.
* Hex numbers: it seem that they never help to win bytes : 9<&9 / 15=&F / 255=&FF ...
* using variable : a loss for only twice the same value (&BD00).
* invalid token : I am not convinced. Just show me ! Most of the interest to win bytes is for the 128b or smaller. So a single line is enough.
* automodify : I made tests to automodify a PRINT "NNNN" and create noise with it. But it took me more bytes to poke than to include the value in a CHR$.
* Printing controls are already used in the 128b & 256b for the colour / mode init
@PulkoMandy : I tried many things yet.
* Hex numbers: it seem that they never help to win bytes : 9<&9 / 15=&F / 255=&FF ...
* using variable : a loss for only twice the same value (&BD00).
* invalid token : I am not convinced. Just show me ! Most of the interest to win bytes is for the 128b or smaller. So a single line is enough.
* automodify : I made tests to automodify a PRINT "NNNN" and create noise with it. But it took me more bytes to poke than to include the value in a CHR$.
* Printing controls are already used in the 128b & 256b for the colour / mode init
Yes, I noticed automodifying may be painfulsometimes because you have to keep the address somewhere.
Invalid tokens are the most fun but also the less easy to write. But yes, space is limited here :). The idea would be to do a GOTO that jumps in the middle of an instruction to do something else, so use your bytes twice. The problem is doing something useful :)
Anyway, here's my own 64b (actually 45 bytes) noise for today :
1 out &bc00,rnd*255:out &bd00,rnd*255:print chr$(rnd*255);:run
Well, don't run this on a real CPC or you will likely kill your monitor. But it may do something nice before that if you're lucky :o)
Hex numbers are smaller for &BC00 and &BD00, but bigger for 0 to 9.
Another trick I just found: "run" is smaller and faster than "goto 1". "run 1" is slower, however.
Invalid tokens are the most fun but also the less easy to write. But yes, space is limited here :). The idea would be to do a GOTO that jumps in the middle of an instruction to do something else, so use your bytes twice. The problem is doing something useful :)
Anyway, here's my own 64b (actually 45 bytes) noise for today :
1 out &bc00,rnd*255:out &bd00,rnd*255:print chr$(rnd*255);:run
Well, don't run this on a real CPC or you will likely kill your monitor. But it may do something nice before that if you're lucky :o)
Hex numbers are smaller for &BC00 and &BD00, but bigger for 0 to 9.
Another trick I just found: "run" is smaller and faster than "goto 1". "run 1" is slower, however.
didnt know amstrad could do this in 128b
I used the slower RUN trick instead of GOTO in the 32b (previous page).
My favorite is this 40 byte one (8 bytes too long):
it can help to change colors, but I don't know how to reduce 3 more bytes in an elegant way !
My favorite is this 40 byte one (8 bytes too long):
Code:
1 PRINT CHR$(RND*15+129);:OUT &BD00,RND*255:GOTO 1
You can save 5 bytes (=35b) like this :
1 PRINT CHR$(RND*9+129);:OUT &BD00,RND*99:RUN
it can help to change colors, but I don't know how to reduce 3 more bytes in an elegant way !
Interesting CPC coding discussion
[offtopuc] Sympa le CAT'arts (vu sur le site web) ! Je ne savais pas que cette pratique était développé à ce point...[/offtopic]
what faraday said+
mixing Basic with pseudoASM always yielded into a mess tho! no matter what system. ( i know whoze fault that is ;) Rotten Gates of TchernoBill ! )
mixing Basic with pseudoASM always yielded into a mess tho! no matter what system. ( i know whoze fault that is ;) Rotten Gates of TchernoBill ! )
(les mecs venez sur bbs.demoscene.fr :p)
tv noise
;-)
:)
:)
noise
noise
lists containing this prod
submit changes
if this prod is a fake, some info is false or the download link is broken,
do not post about it in the comments, it will get lost.
instead, click here !