EXAPUNKS

EXAPUNKS

View Stats:
Zednaught Aug 18, 2018 @ 9:26pm
Redshift guide
Hi fellow hackers. I was wondering if there are resources for getting the redshift game to work, because the zine is too vague about some basics. If not, would someone be willing to type some tips?

Specifically, I'm looking for how how to turn the machine on, how to draw a sprite, and how to get that to move around. I've tried writing various things to the GX, GY, and GP registers, and I don't see anything happening.

I was able to make complete game in Shenzhen, so I should be able to figure the rest out once I get started.

Thanks!
< >
Showing 1-8 of 8 comments
Running/fast forwarding the simulation turns it on.

An exa can have a sprite associated with it. You can draw it yourself by clicking in the G (graphics!) grid next to the code, or write to GPixels to fiddle with individual pixels/use a premade font sprite. To move the sprite, update GX, GY, or GZ as appropriate.

this exa is a little dude who moves around sorta
NOTE EASIER TO JUST NOTE CLICK THE DARN GRID COPY 239 GP COPY 259 GP COPY 238 GP COPY 258 GP COPY 237 GP COPY 257 GP COPY 236 GP COPY 246 GP COPY 256 GP COPY 235 GP COPY 245 GP COPY 255 GP COPY 214 GP COPY 224 GP COPY 234 GP COPY 244 GP COPY 254 GP COPY 264 GP COPY 274 GP COPY 243 GP COPY 232 GP COPY 242 GP COPY 252 GP COPY 241 GP MARK LOLP LINK 800 ADDI GX #PADX GX ADDI GY #PADY GY LINK -1 WAIT JUMP LOLP


edit:
NOTE CLEANER DATA 239 259 238 258 237 DATA 257 236 246 256 235 DATA 245 255 214 224 234 DATA 244 254 264 274 243 DATA 232 242 252 241 MARK INITSPRITE COPY F GP TEST EOF FJMP INITSPRITE MARK LOLP LINK 800 ADDI GX #PADX GX ADDI GY #PADY GY LINK -1 WAIT JUMP LOLP
Last edited by Dendrobates Tinctorius; Aug 18, 2018 @ 10:21pm
Zednaught Aug 19, 2018 @ 7:44am 
Awesome, thanks a lot! I'm up and running. I presume that I can change the appearance of a sprite (say, it 'blows up') by copying a different set of instructions to GP.

One more question, if I may, regarding collision. When sprites collide, nothing by itself happens, is that correct?

I first decide which sprites have collision priority, and which don't by setting the CO register in each EXA. Then, to monitor collisions, I have each EXA read its CI register to look for a change and decide what happens next?
Enyss Aug 19, 2018 @ 8:05am 
Correct
Ra-Ra-Rasputin Aug 19, 2018 @ 2:20pm 
Originally posted by Zednaught:
Awesome, thanks a lot! I'm up and running. I presume that I can change the appearance of a sprite (say, it 'blows up') by copying a different set of instructions to GP.

Sup, i've been in the game business for a while;
Generally speaking it's better to store the explosion animation/graphic on a separate memory slot (EXA in this case) so it can be untiedly used anywhere, unless it is a unique one. I particularly like using the 3x1 registers (you can access them from central memory with 802 and 803 if i remember right) for cases like bullets and explosions et.c. that are called on when needed. Simply send a local communication EXA with relevant coordinates in, replicate the relevant effect and physically send the replicated EXA somewhere where you have space (core memory works).
It's easier to work this way because you can see the explosion sprite. I like playing with RAND a little bit to make the explosion look a bit less "stock footage".

You can do literally thousands of instructions in between wait cycles so there's not much to worry about.

The quick little prototype space game i made stored 20 different sound effects on one EXA and about 10 different effects on the other.

If you're wondering the sound effect and VFX containers had very similar code:

(local comm)
MARK WAITFORCALL
COPY M GX
COPY M GY

NOTE DESIRED EFFECT
COPY M X


TEST X = 1
TJMP CASE 1
(...)
MARK CASE 10
REPL FX10
NOTE RETURNTOBASE
COPY -120 GX
COPY -100 GY
JUMP WAITFORCALL

MARK FX10
(insert effect data)
(replicate a sound effect informer)
Last edited by Ra-Ra-Rasputin; Aug 19, 2018 @ 2:23pm
Zednaught Aug 19, 2018 @ 4:22pm 
Originally posted by Ra-Ra-Rasputin:

Sup, i've been in the game business for a while;
Generally speaking it's better to store the explosion animation/graphic on a separate memory slot (EXA in this case) so it can be untiedly used anywhere, unless it is a unique one. I particularly like using the 3x1 registers (you can access them from central memory with 802 and 803 if i remember right) for cases like bullets and explosions et.c. that are called on when needed. Simply send a local communication EXA with relevant coordinates in, replicate the relevant effect and physically send the replicated EXA somewhere where you have space (core memory works).
It's easier to work this way because you can see the explosion sprite. I like playing with RAND a little bit to make the explosion look a bit less "stock footage".

You can do literally thousands of instructions in between wait cycles so there's not much to worry about.

The quick little prototype space game i made stored 20 different sound effects on one EXA and about 10 different effects on the other.

If you're wondering the sound effect and VFX containers had very similar code:

(local comm)
MARK WAITFORCALL
COPY M GX
COPY M GY

NOTE DESIRED EFFECT
COPY M X


TEST X = 1
TJMP CASE 1
(...)
MARK CASE 10
REPL FX10
NOTE RETURNTOBASE
COPY -120 GX
COPY -100 GY
JUMP WAITFORCALL

MARK FX10
(insert effect data)
(replicate a sound effect informer) [/quote]

Thank you very much for the advice--if you hadn't advised, I know I would have stored my animations on the same EXA.
Last edited by Zednaught; Aug 19, 2018 @ 6:21pm
Enyss Aug 19, 2018 @ 5:26pm 
I whish there was a way to write on half the screen (to do that, you need to use 60 exa).

Even something as simple as a Tetris game or a snake feels impossible to do just because of this limitation :'(

Am I missing something?
Ra-Ra-Rasputin Aug 19, 2018 @ 7:36pm 
From what i've seen you're limited to sprites and there's no way to facilitate background layer(s), at least for the time being. That being said, there is a decent amount of memory available, especially since you can just arbitrarily use memory intended for sound processing et.c., some form of tetris should definitely be possible, just remember that all platforms have their ups and shortcomings.

While this might not run Galaxian or Galaga, i'm certain that something like Asteroids would most definately be possible, and it'd look a spot better than the original to boot.

EDIT: I went on the internet and found someone's beat me to it. https://www.youtube.com/watch?v=O61841j5cng
Last edited by Ra-Ra-Rasputin; Aug 19, 2018 @ 7:38pm
Enyss Aug 19, 2018 @ 8:57pm 
Yes, maybe I was a little hasty... I can indeed display a Tetris area big enough :

https://steamcommunity.com/profiles/76561198175021119/screenshot/950710452457551339



< >
Showing 1-8 of 8 comments
Per page: 1530 50

Date Posted: Aug 18, 2018 @ 9:26pm
Posts: 8