Lillapojkenpåön
-
Content Count
486 -
Joined
Posts posted by Lillapojkenpåön
-
-
18 minutes ago, Defender_2600 said:DAMN!! I did start doing that, but I couldn't get the sprites to look good at all, your sprites look amazing!
If you want to share the graphics or allow me to rip-off what I see, and don't intend to port the demo yourself,
I can finish it in 160 mode.
Where can I learn about kangaroo mode? I've never heard of it.
-
3
-
-
This is my first gamelike thing in 7800 basic, a port of Shiru's Chase for the NES
It's not much of a game and I'm abandoning it, but great for learning 7800 basic
It wasn't very well suited for 320B mode, the two restricted colors are barely used, and then you only have four left,
I would have really liked one more color so the sprites could be solid and outlined with black instead of transparant in those place.
Thanks for all the help everybody!
EDIT:
Not abandoned anymore, continued in 160 mode.
-
8
-
-
Why doesn't this work?
incgraphic playerSprite16x16.png 320B 0 0 3 2 incgraphic playerSprite16x16_2.png 320B 0 0 3 2 frameCounter = frameCounter + 1 if frameCounter = 60 then frameCounter = 0 : frame{0} = !frame{0} plotsprite playerSprite16x16 4 playerX playerY frame 2first frame is good, second frame is half frame 0 and half frame 1, like inbetween them, tallsprite options doesn't improve it
putting the frames next to each other in one png doesn't work and putting them under each other in one tall sprite gives the same result as this.
My zoneheight is eight and my sprite is 16 pixels tall.
-
hmm, something is weird, I'm using the same code that worked in my 160A project, but something is wrong with the numbers
it works something like this for collisions with the foreground tiles
const playerHeight = 16 const playerWidth = 16 const playerHeightMinusOne = 15 const playerWidthMinusOne = 15 const tileHeight = 8 const tileWidth = 8 const tileHeightMask = %00000111 const tileWidthMask = %00000111 if !joy0right then skipRight playerX = playerX + 1 temp7 = playerX & tileWidthMask ; how far into the current column are we x = (playerX + playerWidth) / tileWidth y = playerY / tileHeight charValue = peekchar( tilemap, x, y, 28, 28 ) ; top right if charValue > bgTile then playerX = playerX - temp7 : goto skipRight y = (playerY + playerHeightMinusOne) / tileHeight charValue = peekchar( tilemap, x, y, 28, 28 ) ; bottom right if charValue > bgTile then playerX = playerX - temp7 skipRight
The constants are correct, and up and down seems to work as it should, but when going right as in this case, it's as if the maze is exactly twice as wide as it actually is, you don't collide with the right wall until you're way outside it,
I would have thought that the fix would be changing the tilewidth constant from 8 to 4, even though I don't get why when my tiles are 8 pixels wide, but that's not it, not only atleast..
since I start plotting my tilemap 48 pixels from the left, do I need to take that into account with peekchar?
plotmapfile tiledMap28x28.tmx tilemap 24 0 28 28 ; 24 = 48 pixels because doublewide, i think?
I think it's some combination of those two things and the fact that I don't fully get things yet, like for example there still only seems to be 160 horisontal positions for sprites in 320 mode.
oh with that in mind I just changed these
const playerWidth = 8
const playerWidthMinusOne = 7
const tileWidth = 4
const tileWidthMask = %00000011
and it gives the correct collisions but offset by 48 pixels as I suspected, I'm gonna eat something and solve this before I even post my question..
BOOM!
const screenOffset = 24
x = ((playerX - screenOffset) + playerWidth) / tileWidth
-
That explains it, thanks!
-
Is there some easy way to figure our what charvalue a certain character has? You can count but they don't seem to start from 0
-
Thanks for looking. Yes, when I said "graphics thingy" I meant block, those purple tiles in the maze should be dots so it's still not working right, I think they are not in the same block but I don't know what to do about it?
This makes the tilemap display correct, but the text dissapear
incgraphic newTiles8x8.png 320B 0 2 3 1 0
incgraphic dots.png 320B 0 2 3 1 4
incgraphic atascii.png 320B 0 2
characterset newTiles8x8
incmapfile tiledMap28x28.tmx
;characterset atascii
alphachars ASCII
-
7 hours ago, Karl G said:Okay, maybe upload another code example? One of the smart people here may be able to figure out what's going on. Or possibly even me.
It's the second time something similar happens to me, in my 160A experiment I had to do different characterset before plotting them, then it just started working with one, don't know what changed?
-
-
13 hours ago, Lillapojkenpåön said:Has anybody experienced the last row of each letter not being visable when plotting text, so that E looks like F, I look like a T etc?
this is all the code related to the text
incgraphic alphabet_8_wide.png 320B 0 2 3 3 4
characterset alphabet_8_wide
alphachars ' abcdefghijklmnopqrstuvwxyz.!?'
plotchars 'abcdefghij' 4 20 0 10
I used atascii instead, display correct, but that turned my dot tiles into numbers, is that text to big so it pushes the dots out of the graphics thingy? How do I fix it?
-
Has anybody experienced the last row of each letter not being visable when plotting text, so that E looks like F, I look like a T etc?
this is all the code related to the text
incgraphic alphabet_8_wide.png 320B 0 2 3 3 4
characterset alphabet_8_wide
alphachars ' abcdefghijklmnopqrstuvwxyz.!?'
plotchars 'abcdefghij' 4 20 0 10
-
I found the resize and offset thing!
-
1
-
-
25 minutes ago, Karl G said:Here's a modified version of your example that reduces the width of the tile map to 30
Do you know if there's a way to resize an allready drawn map, or if you can move big chunks of placed tiles on the map in tiled, those would be nice features
-
cool, thanks! didn't know you could do that, the game would eventually have fullscreen levels tho, but atleast I can test how far I can push it
-
vscode didn't give me an option to save it as 7800 basic, so I saved it as batari basic
a 16x16 sprite shouldn't be a problem right? or do I need to split that one up also?
-
11 minutes ago, SmittyB said:If you're not using doublewide and a zone height of 8
I'm using doublewide and zoneheight 8, bummer, this mode seemed promising
-
14 minutes ago, SmittyB said:I would expect that to be because too much is being drawn in those zones, but it's hard to say.
there's just my map and a sprite on the screen
the pacman mouth is also something weird, the sprite is just a solid square
-
what might be the problem if my sprite flickers and appear to be dissapearing behind some zones when moving up and down?
-
14 minutes ago, SmittyB said:Neither of those binaries seem to work for me on either BupSystem or ProSystem.
That sounds not good, what's the A78 file? maybe that's the one I'm suppose to share?
Thanks for all the valuable information, I appreciate it, I would have given up on myself a long time ago
-
I'm using doublewide on now and 8x8 tiles, Doesn't seem to result in doublewide pixels like 160, I think it's just a confusing name
-
Thanks, that's kind of how I thought about it, but then you wrote this
3 hours ago, SmittyB said:You can enable 'doublewide' which tells the system to read 2 consecutive bytes at once, but of course that still only gives you a tile width of 8 pixels and not 16. (Doublewide would result in a tile width of 16 with the wider pixels of 160A however).
Which indicates it also doubles the pixel width, I never noticed any pixel width change with 160A and having doublewide on or off, but maybe it's hard to notice, or only doubles it in 320 mode?
I got my playfield displaying, but it stops drawing tiles near the right of the screen, does tiles counts as objects? It doesnt improve when I add more dlmemory, should be able to display 136 objects per zone it says
I just drew two lines across the screen, as you can see they stop at the same place
-
1
-
-
2 hours ago, SmittyB said:Most of the limits for what you can draw including the width of objects are based on the number of bytes and the number of pixels you get for a byte changes based on the graphics mode.
For 160A, 320B, and 320C a single byte will represent a 4 pixel wide slice of graphics with 2 pixels for 160B, and 8 pixels for 320A and 320D.
This means that each 'tile' will actually be only 4 pixels wide.
Hmm, I used to use 160A with doublewide on, and made my tiled maps with 8x8 pixels, so I assumed the 4 pixel character width was something under the hood I didn't have to worry about, and if I made wider tiles they just got split up somewhere along the way and would still appear on screen correctly.
I was also a little confused about doublewide, since it didn't seem to change the pixel width when using 160A, only read 2 consecutive bytes at once, but maybe I'm wrong?
But it sounds like you're telling me that if I want the finer resolution my tiles can only be 4 pixels wide, not 16 like now, I will try it
2 hours ago, SmittyB said:try 'plotsprite newTiles16x8 0 0 0' to see if that draws anything. If it does there's probably something in the mapfile that needs adjusting.
Thanks, atleast something on screen
-
34 minutes ago, SmittyB said:You get palettes 0 and 4 plus background/transparency (taking into account the quirks with transparency in 320 modes).
Thanks!
Is there some limits with tile width? I made 16 pixel wide ones and nothing shows up, just a blcak screen
set romsize 128kRAM ;extra 16k of RAM from $4000-$7fff. set zoneheight 8 set doublewide off set screenheight 192 set tv ntsc set dlmemory $4000 $4fff set basepath gfx displaymode 320B bank 1 P0C1 = $a2 P0C2 = $a6 P0C3 = $aa /* P1C1 = $52 P1C2 = $56 P1C3 = $5a P2C1 = $c2 P2C2 = $c6 P2C3 = $1a P3C1 = $0f P3C2 = $00 P3C3 = $00 */ P4C1 = $a2 P4C2 = $a6 P4C3 = $aa incgraphic newTiles16x8.png 320B 0 1 3 2 0 characterset newTiles16x8 incmapfile tiledMap16x8.tmx clearscreen plotmapfile tiledMap16x8.tmx tiledMap16x8 0 0 20 24 savescreen mainLoop ;logic here restorescreen ;plot here drawscreen goto mainLoop thisbank bank 2 bank 3 bank 4 bank 5 bank 6 bank 7 bank 8
-
2 hours ago, Mord said:I suppose one way to describe it is that a 320 mode is basically a 160 mode as far as placing sprites are concerned, but each sprite has the fat pixels broken up into two halves with regards to their color. (ie: "pixel pair")
In 320B in particular both halves of the pair have conditions for being displayed. Specifically in order for the C1 palette entry to display, it must be paired with a C2 or C3 for the other half of the pair. If you try to have a pair C1's or a C1 + BG, both halves end up being the background color. C2 and C3 can be displayed freely.
Also, if you're playing with 320B, make sure you aren't testing in ProSystem. It doesn't understand the palette condition above and will display C1 freely like C2 and C3. Real hardware, A7800, and BupSystem (fairly certain about Bup but haven't tested personally) will display with the rule above.
Thanks now I get it! That's alot less restricted than I thought
I also read you only have 7 colors
so is that palette 0 and 1 + transparant?

Atari Dev Studio for Homebrew Development [Release]
in Homebrew Discussion
Posted
Some of the graphics in the 7800 basic samples are one line taller than what's going to be displayed, and have one pixel of all the colors used in the graphic on that extra line, I was just wondering if that's how the color 1-3 gets decided, in the order they are encountered from the bottom and probably left to right, if that's the case it would maybe be nice to have a checkbox option in the sprite editor to add that extra color index line when you select the size, if that's even why that line is there?