Jump to content
IGNORED

Troll Face - My first Atari 2600 ROM


Recommended Posts

I watched a video tutorial online and piped this ROM out about an hour after installing Batari Basic. It doesn't really do much except display a crudely drawn Troll face and an impossible-to-beat high score, but it's the first time I've ever programmed/compiled a ROM before, so it was kinda magical to see something I created actually boot up in Stella! :-D

post-33189-0-63592300-1383727014_thumb.png

TrollFace.bin

Edited by stardust4ever
  • Like 3
Link to comment
Share on other sites

Added artists' signature. My initials "AJW"

 

I have no clue where I'm going with this one. Maybe it would make a nice "prank" ROM. (as in make a fake Atari cart say Air raid or something and stick it in there). Next add some audio, something really obnoxious, maybe use the bass end of the noise register.

 

post-33189-0-43217300-1383769889_thumb.png

TrollFace v0.01.bin

Edited by stardust4ever
Link to comment
Share on other sites

I watched a video tutorial online and piped this ROM out about an hour after installing Batari Basic. It doesn't really do much except display a crudely drawn Troll face and an impossible-to-beat high score, but it's the first time I've ever programmed/compiled a ROM before, so it was kinda magical to see something I created actually boot up in Stella! :-D

attachicon.gifTrollFace.png

attachicon.gifTrollFace.bin

 

30+ years later and there's still new things for the Atari...

 

 

 

http://www.youtube.com/watch?v=p6ANfJskbmY

 

30+ years later and there's still new material from trololo as welll!!!! :P

Link to comment
Share on other sites

 

30+ years later and there's still new things for the Atari...

 

 

 

http://www.youtube.com/watch?v=p6ANfJskbmY

 

30+ years later and there's still new material from trololo as welll!!!! :P

If I was a composer, I'd make a chiptune dedicated to that song - so much classier than a Rick Roll! :grin:

Link to comment
Share on other sites

 

If you are using the sprite editor in VbB, right click and select Resize.

Okies. Do you mind if I "borrow" your sprite art?

 

post-13304-0-45174100-1383771551.jpg

 

If I decide to animate him, is it possible to keep the head as a static frame and just animate the body? That would reduce the data required for storing them. Also it would be nice to flip the body and keep the head facing the last direction pushed on the joystick. If I use the above GIF animation as a visual aid, how would incorporate animation into the ROM? I'm thinking a 15Hz animation with a new key frame every four cycles. Right now I'm thinking I can use what I've got as a title screen and use the dancing trollface man as a character in game. And maybe the scoreboard starts at 999,999 and counts backwards!!! :rolling:

 

Yay!

post-33189-0-41192600-1383802644_thumb.png

Trollface v0.02.bin

Edited by stardust4ever
  • Like 1
Link to comment
Share on other sites

You'd have to create a whole new sprite. There are weird ways of working around that but it'll give you nightmares.

 

Feel free to use my Troll :)

 player0:
 %00001100
 %00001000
 %11000100
 %01000100
 %01011000
 %10101000
 %11001000
 %00001010
 %00101001
 %01001010
 %10001100
 %11111000
 %00001000
 %00111100
 %01000110
 %01000010
 %10111101
 %11110111
 %01001001
 %00111110
end
  • Like 1
Link to comment
Share on other sites

 

You'd have to create a whole new sprite. There are weird ways of working around that but it'll give you nightmares.

 

Feel free to use my Troll :)

 player0:
 %00001100
 %00001000
 %11000100
 %01000100
 %01011000
 %10101000
 %11001000
 %00001010
 %00101001
 %01001010
 %10001100
 %11111000
 %00001000
 %00111100
 %01000110
 %01000010
 %10111101
 %11110111
 %01001001
 %00111110
end

Is the code for all the sprites upside-down? I noticed that when I was copying the sprite data into the code: the top line of the sprite is on the bottom in the code. That's weird. Shouldn't the top line of the sprite also be the first line of code since it's technically executed first? To the best of my knowledge raster displays start scanning at the top, from left to right, and work their way down one scanline at a time.

Link to comment
Share on other sites

The data is arranged so that the batari BASIC kernel can read it fastest. It's amazing just how bare metal bB is. Most BASIC interpreters are runtime engines that parse BASIC commands as they go. bB barely translates them directly into pure assembly.

"barely" ?

"actually translates them into pure assembly." FTFY

Or funnier, "batari Basic basically translates into assembly." See what I did there?

The DPC+ kernel has the data right side up. The ARM wants what it wants.

Link to comment
Share on other sites

I guess I didn't explain myself very well. I consider the levels of translation and layers of software "barely". It's not as bad as Java bytecode but not quite hand written assembly.

 

Just trying to emphasize some of the weirdness that stardust4ever sees is because bB is VERY close to the hardware and must make the tradeoff between what makes sense to humans and what the TIA needs.

Link to comment
Share on other sites

Just slap a 'CLoak and Dagger' label on it, claim it was a movie prop and sell it on eBay for big bucks! Atleast the troll face will be appropriate when the owner plugs it in :)

Nice one! Even funnier because anyone who's watched the actual movie, or even read the wikipedia artical about it will know that it was a 5200 cart, not 2600.

 

Maybe this would be more appropriate, if it were baby blue colored! :lolblue:

post-33189-0-50137100-1351354690.jpg

http://atariage.com/forums/topic/204618-air-raid-magnet-mod/

Edited by stardust4ever
Link to comment
Share on other sites

Oooh, multicolor sprites! Nice! I don't know why, but I'm keeping my game monochrome for the time being (well, if I can make a game out of it, that is). It kinda goes with the whole "in your face" aesthetic. I want it to look crude even for an Atari game,

 

I'll probably get a crude keyframe animation working (may just make a two frame animation by fliping the stick man below the head level). I can use for/next loops for timing (unless there's a more efficient way to do it) by adding one to a counter for every frame, then after X frames switch the animation sequence. But that means the draw_playfield command will have to be embedded inside the for/next loop that defines the first frame of the sprite. Then I'll have to embed another draw_playfield command inside the for/next loop that defines the second frame of the sprite. But there only needs to be one command to draw_flayfield in the main loop. That would be one helluva way to convolute the programming. Maybe a While command would be better? I could add one to the variable on every frame and the while commands could apply to a range of values. So for 8 frames, say X >= 0 >= 7 the first sprite frame would be used, "else" the second sprite would be used. 16 would reset X to zero. But won't using variables and nested loops in this manner be incredibly taxing on the Atari when it only has 128 BYTES of RAM? Even with 8-bit variables, the VCS memory would quickly get used up. :???:

 

Quick question: I know my game is only 4k right now; what happens when I fill that ROM space up? If I create too many variables, will it quickly use up the 128 BYTES of RAM? I know there are a lot of bankswitched games that use Batari Basic, but I'm sure it's not automatic.

Link to comment
Share on other sites

Quick question: I know my game is only 4k right now; what happens when I fill that ROM space up? If I create too many variables, will it quickly use up the 128 BYTES of RAM? I know there are a lot of bankswitched games that use Batari Basic, but I'm sure it's not automatic.

 

The bB page has a table of contents on the left side and an index on the right side to help us find things as quickly as possible:

 

randomterrain.com/atari-2600-memories-batari-basic-commands.html

 

 

Here's the section on bankswitching:

 

randomterrain.com/atari-2600-memories-batari-basic-commands.html#bankswitching

 

 

When I was working on Seaweed Assault, I ran out of variables, so I had to use Superchip RAM which gave me at least 48 more variables:

 

randomterrain.com/atari-2600-memories-batari-basic-commands.html#superchipram

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...