Creating a Spectrum game that won't load...

Dear All,

I have recently been using my ZX Spectrum as a reference for the production of a new body of art work and something I keep coming back to is the loading screen. I have been trying understand the process of loading a game. I have an idea that would compromise of a Spectrum game that never loads, just continues to attempt to load, producing that amazing signature screen with yellow, blue, red and turquoise lines running up and down the sides. One idea I thought about was actually opening up a game cassette and cutting several different parts out, creating a continuous loop inside the cassette so that the same information just keeps feeding through. Would this just end up crashing the Spectrum? Any suggestions? I'd rather not go breaking apart all my 25year old games!

Thanks.
Post edited by Rhys Coren on

Comments

  • edited November 2009
    Rhys Coren wrote: »
    Dear All,

    I have recently been using my ZX Spectrum as a reference for the production of a new body of art work and something I keep coming back to is the loading screen. I have been trying understand the process of loading a game. I have an idea that would compromise of a Spectrum game that never loads, just continues to attempt to load, producing that amazing signature screen with yellow, blue, red and turquoise lines running up and down the sides. One idea I thought about was actually opening up a game cassette and cutting several different parts out, creating a continuous loop inside the cassette so that the same information just keeps feeding through. Would this just end up crashing the Spectrum? Any suggestions? I'd rather not go breaking apart all my 25year old games!

    Thanks.

    If you want to show all headerinfo from tape then you should try to load a non-existing program.
    Something like this LOAD "NON EXISTING PROGRAM"
  • edited November 2009
    type that in at the start with a game tape in it as well?
  • edited November 2009
    Try creating a C90 with a load of SCREEN$ images on it, and run this program before you start:
    10 PRINT AT 0,0;: LOAD ""SCREEN$: GO TO 10
    
    

    If your tape was looped, then you'd get a continuous sequence of images being loaded, headers and all.

    Or you could just use the SCREEN$ screensaver.

    D.
  • fogfog
    edited November 2009
    there is a cheat you could use.. and one of these wonderful folks that know the speccy inside out will help you with the exact numbers..

    years ago a friend showed me a Randomise USR command..and if you didn't know better you'd think it was a game loading..

    as for the loading screen.. make one up in ya pc or speccy.. it needs to be in SCR format.. I guess you can use BMP > scr etc.. load into an emulator and use a virtual tape..

    the first thing.. you'd want a very simple loader as mentioned before...

    10 load "" screen$
    90 goto 10


    now if you wanted to fake it loading a speccy game, you could put code in between 11-89

    to get that to auto run.. you need to do

    save "whatever" LINE 10

    and that'll auto run line 10...

    that'll load pics full stop..

    you might wanna disable the break key also.. if the keyboard is near also.. someone might be tempted to re-live their youth and do a "kev is cool" type program :)


    the infinate loop.. ah easier than ya think.. use either a pc or mp3 player and loop the sound file :) and keep them tapes safe.. it'll only load up screen$ files again and again..
  • edited November 2009
    Try:

    RANDOMIZE USR 1234
  • edited November 2009
    it is quite important that it is the actual machine itself producing the loop. i've mad e afew emulated versions and you just can;t replicate it to its full potential.

    for that last bit, fog, creating the infinite loop on the actual spectrum itself?
  • edited November 2009
    Try:

    RANDOMIZE USR 1234

    Yes, just set it up SAVING random junk. That way you'll get the loading stripes but won't need a cassette or anything.

    Of course, you'll want to skip the "Start Tape" message, so you should just call the relevant pieces of ROM... Don't have my Logan & O'Hara to hand right now though....


    &e7
  • fogfog
    edited November 2009
    you mean you wanna emulate the loading right? how it draws the screen etc? WITHOUT a tape recorder right?

    I was gonna suggest using a DivIde into the back with a virtual tape.. but event thats too fast.think of it like this the mp3 or computer is ONLY replacing the tape deck.. you still load the sound via it into the spectrum...

    to get something like a tape that would loop..hhmm is tricky.. with an pc or mp3 player you just put the "song" in loop mode and done.. and it's infinite.

    3 options really

    1) code something to fake the loading / saving.. maybe you would need assembler.. maybe you could get away with using data statements etc.. but with that you have the limit of memory..

    2)the far easier method.. use an mp3 on loop or a pc on loop to a REAL spectrum.. you can of course generate the tape in a pc and it'll give the same loading tones etc..

    3) TOTALLY fake it by using video editing and play it back via a pc.
  • edited November 2009
    Try:

    RANDOMIZE USR 1234

    Only lasts a few minutes.

    D.
  • edited November 2009
    10 randomize usr 1234
    20 go to 10
    
  • edited November 2009
    One thing about the Speccy loading bars and noises that is important to me is the variety. You can hear when gfx are being loaded. You can hear when code is being loaded. You can hear when empty blocks are being loaded. This creates a really rich and interesting soundscape that would be lost if you just loaded up random data.

    In "Ah, the tape loading era!" I went to some trouble to sync up the audio of gfx loading with the visual effects of gfx loading.
    (the tape audio is too quiet in this YouTube link to really hear the effect though)
  • edited November 2009
    fog wrote: »
    you mean you wanna emulate the loading right? how it draws the screen etc? WITHOUT a tape recorder right?

    I was gonna suggest using a DivIde into the back with a virtual tape.. but event thats too fast.think of it like this the mp3 or computer is ONLY replacing the tape deck.. you still load the sound via it into the spectrum...

    to get something like a tape that would loop..hhmm is tricky.. with an pc or mp3 player you just put the "song" in loop mode and done.. and it's infinite.

    3 options really

    1) code something to fake the loading / saving.. maybe you would need assembler.. maybe you could get away with using data statements etc.. but with that you have the limit of memory..

    2)the far easier method.. use an mp3 on loop or a pc on loop to a REAL spectrum.. you can of course generate the tape in a pc and it'll give the same loading tones etc..

    3) TOTALLY fake it by using video editing and play it back via a pc.



    Awesome, thanks for the help but can I just ask, for option 2, what do you mean exactly by use an Mp3 on loop? I am a novice and apologise for needing this explained so thoroughly!!!!
  • edited November 2009
    I think he is saying you can create an mp3 consisting of a basic loader then lots of screens one after the other then play it into the spectrum from an mp3 player.

    e.g.
    10 load "" screen$
    20 go to 10
    
    [/QUOTE]

    This basic program will load in a screen, then look for another so if your mp3 conisted of the basic loader, then a screen (header + 6912 bytes of screen), then another and another you could produce a long mp3 with gaps inbetween the screens so people could admire them.
  • edited November 2009
    ok, so just record the game tapes into mp3 format?
  • edited November 2009
    Rhys Coren wrote: »
    ok, so just record the game tapes into mp3 format?

    Just the screens, not the whole game. Also you would need to consider turbo loads as they would not load in a standard loader. You may be best loading games into an emulator and saving the screens one at a time, then creating the mp3.
  • fogfog
    edited November 2009
    basically what cheese said..

    are you on about various loading screens from different games OR ones you have made yourself?

    the thing is , if they are from games / others work they will probably use custom none standard loaders..

    so you'd want to do a grab of the screen via say an emulator or use the scr's listed on here... and make / put them on a tape..

    the loops I'm on about... well 2....

    1) for the program.. so it runs forever

    2) for the pretend tape (aka mp3 player) .. remember speccy files are just sound and the computer changes that to code..

    give more detail.. u gonna use a real speccy , which model.. also do u use emulators?

    the bottom line is, far easier to prepare using an emulator to make the "tape" then just use a REAL machine to show it.

    as for leaving a gap between the pics .. i'd do a track play list.. and make 1 track silent for say 30 seconds or whatever... and just call that as every 2nd "song" if your machine has a playlist facility.
  • edited November 2009
    fog wrote: »
    as for leaving a gap between the pics .. i'd do a track play list.. and make 1 track silent for say 30 seconds or whatever... and just call that as every 2nd "song" if your machine has a playlist facility.

    That is an excellent idea! It's unknown at the moment if the feed is going to be tape, pc, mp3 player or other. If its pc then I would have each screen as mp3 with the pause track in between. If the source is an mp3 player you would have to make a long mp3 complete with gaps.
  • edited November 2009
    If nothing has to be loaded in real, then why not SAVE a screen instead of LOADing? The USR 1234 trick does save a block of code with unknown start and length, but the ROM routine can easily be copied and changed for processing known blocks of code like screens. In fact one could create special blocks of data with interesting sound patterns. A quick test in SPIN v.0622 (with the character set in ROM) showed only an 'approximation' of the stripes however.
    ORG 60000      ;( len = 140 bytes)
    
    
    ;SA-BYTES $04C2 Spectrum ROM 
    	LD DE,768	;length  (6912 for screen)
    	LD IX,15616	;start    (16384 for screen)
    
    	LD HL,$0C98	;timing
    	EX AF,AF'
    	INC DE
    	DEC IX
    	DI	 	;d0,1,2=brd, d3=mic d4=ear
    	LD A,%00000010	;MIC on, brd %010 =red
    	LD B,A
    SALEAD	DJNZ SALEAD
    	OUT ($FE),A
    	XOR %00011111	;toggle between 11101 and 10010
    	LD B,$A4
    	DEC L
    	JR NZ,SALEAD
    	DEC B
    	DEC H
    	JP P,SALEAD 	;2 sec leader
    
    	LD B,$2F 
    SASY1	DJNZ SASY1	;wait
    
    	OUT ($FE),A 
    	LD A,%00001101 	;MIC off, brd %101 =cyan
    
    	LD B,$37 
    SASY2	DJNZ SASY2 	;wait
    	OUT ($FE),A 
    
    
    	LD BC,$3B0E 	;timing
    	EX AF,AF' 
    	LD L,A
    	JP SASTART
    
    SALOOP	LD A,D
    	OR E
    	JR Z,SAPAR
    	LD L,(IX+0)
    SALOPP	LD A,H
    	XOR L
    SASTART	LD H,A
    	LD A,1 
    	SCF
    	JP  SA8BIT
    
    SAPAR	LD L,H
    	JR SALOPP
    
    SABI2	LD A,C
    	BIT 7,B
    SABI1	DJNZ  SABI1
    	JR NC,SAOUT
    
    	LD B,$42
    SASET	DJNZ SASET
    
    SAOUT	OUT ($FE),A
    	LD B,$3E
    	JR NZ,SABI2 
    	DEC B
    	XOR A 
    	INC A      
    
    SA8BIT	RL L
    	JP NZ,SABI1
    	DEC DE	 	;next byte
    	INC IX
    	LD B,$31
    	LD A,$7F
    	IN A,($FE)
    	RRA
    	RET NC
    	LD A,D
    	INC A
    	JP NZ,SALOOP
    	LD B,$3B
    SADEL  	DJNZ SADEL
    
    	LD A,(23624)       ;border colour
    	AND $38
    	RRCA
    	RRCA
    	RRCA
    	OUT ($FE),A 	;back to normal
    	EI                       ;important!
    	RET
    
  • fogfog
    edited November 2009
    this is off topic , but not.. remember YEARS ago.. in a mag , I think sinclair user perhaps.. there was a thing called screen machine?

    and it flipped pics etc.. the pic was nodes of yesod, but they'd messed about with it..

    also a image of popeye animated was on it as well, does it ring any bells with anyone
  • edited November 2009
    my main aim is to try and use the standard equipment of 48k spectrum, tape player and monitor. I could conceal an mp3 player, however. Also, I aim to have a long loop of various different loading screens, trying to remain as true to the various game loads as possible.
  • fogfog
    edited November 2009
    Rhys Coren wrote: »
    my main aim is to try and use the standard equipment of 48k spectrum, tape player and monitor. I could conceal an mp3 player, however. Also, I aim to have a long loop of various different loading screens, trying to remain as true to the various game loads as possible.

    there is no way you can't do it without either an mp3 / cd or pc dealing / sending the audio to the spectrum.. simply due to the loop.. try to find a tape deck that does loop, from what I understand old ansa-phones use to do loops.

    if your trying to remain faithful to the original thing, thats impossible for 1 reason.. custom loaders.. unless you know how they work and know assembler/z80.. then you can't be 100% true to how they were.. even the coders here, I bet most of them wouldn't bother going to that much detail, simply because people wouldn't recall UNLESS they are proper speccy heads.

    lets face it how many people will remember how most games load.. its a LONG time ago, unless it had a special feature like a counter /scroller etc?

    it's a bit like your using a sledge hammer to crack a walnut :)

    it's a bit like the loader I made using advice from here.. if a game is problematic on the 128.. I just copy / paste it onto the front of the wav file, save it out again..tzx it.. job done :)
  • edited November 2009
    fog wrote: »
    this is off topic , but not.. remember YEARS ago.. in a mag , I think sinclair user perhaps.. there was a thing called screen machine?

    and it flipped pics etc.. the pic was nodes of yesod, but they'd messed about with it..

    also a image of popeye animated was on it as well, does it ring any bells with anyone

    Both of those programs were in Your Spectrum #19: Movin 'n' Groovin and Sprite High, No Limit.
  • edited November 2009
    fog wrote: »
    there is no way you can't do it without either an mp3 / cd or pc dealing / sending the audio to the spectrum.. simply due to the loop.. try to find a tape deck that does loop, from what I understand old ansa-phones use to do loops.

    All you need is an auto-reverse tape deck, surely? You know, one of those which plays to the end of side A, goes 'clunk' and then plays side B without having to turn the tape over...
  • fogfog
    edited November 2009
    I did look at that Gas, but the reality of finding one ?!?! I guess ebay hhmm.


    would you still go for the mp3 solution.. I mean you have the option of coding something, but would you be bothered to out of curiousity?

    I remember having a tape to tape (I still have it somewhere).. and deck 2 you could set as continuous play, but not auto reverse.. obviously thats the ONLY reason I bought such a unit :D *cough *

    thanks Battle Bunny for the help :)
Sign In or Register to comment.