Search the Community
Showing results for tags '7800 basic'.
-
First, here's some potential 7800 ports that I might make: -Thunder Force (Sharp X1/Fujitsu FM7) -Bad Dudes vs. Dragon Ninja -Darius -Salamander/Life Force -Space Gun (Will have Light gun, Mouse, and Trak-Ball support.) -Marble Madness (Will have Trak-Ball support.) -The Fairyland Story -The Legend of Kage (Possible dual joystick support.) Lynx ports: -Magical Drop -Cadash -Aqua Jack -The NinjaWarriors -The New Zealand Story -Chase H. Q. -Bionic Commando -Gradius 1 & 2 Jaguar: -Xexex -Turrican 1 & 2 -Lemmings (Will have mouse support.) -Osman/Cannon Dancer (with spelling and grammatical fixes.) -Magician Lord -RayForce -Metal Black -Gun Frontier -Ghost Lop -Arabian Magic -Pnickies -The Cliffhanger: Edward Randy (with improved controls, I might add.) Before I go, here's Dark Edge, a sprite-based 3D fighting game from Sega: I hope this gives someone here an idea or two... Update: I also wanted to say that many of these ports can also be done the other systems mentioned. Update 2: Come to think of it, Quadtari, Comlynx, and Team Tap support are also on the plate.
- 2 comments
-
- 2
-
- 7800 basic
- lynx
-
(and 8 more)
Tagged with:
-
Other games besides platformers and ports that I might make for the 7800: -At least two horizontal shooters. -At least one overhead adventure game. -At least one other vertical shooter. However, not until Heofonfir is done.
-
From the album: 7800 Build Screenshots
From New Vertical Shooter Demo, 8-26-2020 build.-
- vertical shmup
- 7800
-
(and 2 more)
Tagged with:
-
I've been experimenting further with incbanner and sprites. I can get static and sprites banners working nicely but this led me to thinking about using the banners for some simple animation (for a title screen for example). However I then found that with the standard 48k romsize, my experiment splitting the screen in to 4 zones (top left, top right, bottom left etc) meant I quickly filled that 48k up if I had multiple banners of 80x72 in 160B I can compile a 48k ROM that loads in and displays 4 screen sections with incbanner and plotbanner, each 80x72, no issues. (oh for a command to flip a sprite or banner! :D) If I go to 5 or 6 sections loaded with incbanner, I can load them but I get black blocks on the right side of the screen when displaying anyting, I assume this is because i'm running low on rom and this is causing an issue somewhere (displaylist ?). I also noticed that if I use a superwide banner (say 160 pixels) then the last third gets cut off and pasted on the main image - I'll make a separate thread for that, this is why i'm splitting the banners at 80 pixels. If I go beyond that I'm out of memory (at 7 I get "-1510 bytes of ROM space left in the main area"). Ok, lets move to a bigger size and bankswitch. I figured this would be easy enough as I've done bankswitching with Bb before, but I cannot seem to get anything to compile. I tried to switch to a bankswitch format, like 128k but whatever I compile, I get "*** (32): ERROR, graphics overrun in bank 0" My understanding is that with a 128k scheme, I'd have 8 banks of 16kb, so 0 through 7. (I assume bank 0 is the first bank). I've tried moving the banners to their own bank (4 in bank 1, 4 in bank 2 etc.) bank 1 incbanner gfx/FR1_TL.png 160B incbanner gfx/FR1_TR.png 160B incbanner gfx/FR1_BL.png 160B incbanner gfx/FR1_BR.png 160B bank 2 incbanner gfx/FR2_TL.png 160B incbanner gfx/FR2_TR.png 160B incbanner gfx/FR2_BL.png 160B incbanner gfx/FR2_BR.png 160B but this doesn't seem to work either. I don't understand the graphics overrun error in bank 0 other than the obvious - ie I've put too much stuff in there. I don't know how to resolve the error. I could reduce the colour resolution from 160B to 160A and that would probably work to reduce the banner sizes so I could get more in to 48k, but i'd still eventually hit the wall on needing to bankswitch. Any pointers would be appreciated! Thanks! works_no_bankswitch.bas bankswitch_doesnt_work.bas gfx.zip
-
I was doing a little experimenting with 7800 Basic, drawing a character background, a ship, and a row of 3 aliens in 160A mode. Depending on the Y value chosen for plotsprite, either 1 or all 3 aliens show up (e.g. all 3 do for a Y value of 80, but only one does for a Y value of 90). The symptoms match what the docs say about MARIA running out of render time, but I wouldn't think that 3 sprites + character background would be enough to cause this. Also, why the inconsistency with the Y position? My first thought was that this is due to the sprites getting doubled-up due to crossing zone boundaries, but even when I set each sprite to Y values meant to put each in their own zone, it still is an issue (although perhaps I was off by one on the zone boundary). I've attached the zipped project, and also am putting the source inline, since it is short. space-7800.zip
-
Based on a forum here and an idea by Retrogamer81081, here is another silly 7800Basic game titled, Chicago Basement. In four rooms down in a basement are prototypes of systems and games to collect as many as you can while avoiding the spiders, rats, centipedes, and even Steve Bartman. There are deep dish pizzas to restore some of your health points (the number on the right). The number on the left is your score. I was going to add an upstairs room but things started getting glitchy so I omitted that room. SCREENSHOTS: chicago.bas.a78 chicago.bas.bin
-
Conquering Bankswitching in 7800Basic
frankodragon posted a blog entry in Frankodragon's Blog Stuffs
If you read my last blog, you know how much I had trouble dealing with bankswitching in 7800 Basic. I couldn't grasp the concept; it takes me a while to figure out something. Before I go any further, let me tell you a story. Way back in grade school, I was a slow learner. In fact, when I first started school, the teachers thought I was stupid. I was put in a slow reading group with two girls. It took me a while, slower than other students, to understand something like reading comprehension or division. Boy, did I have trouble with division. Then later, it suddenly clicked in. The same thing was with algebra. My biggest mistake was that I gave up too soon, figuring if I couldn't understand it, why bother? When I took a class in basic mathematics in college, algrebra was easier to understand. Could it be from how the teacher taught it? Could be. Anyway, 7800 Basic was something I wanted to learn as I enjoy making things, like video games. Now the same thing has happened when working with 7800 Basic. The bankswitching which I had so much trouble with, finally has clicked into my brain. At times, I would blame my brain for not understanding sooner. There were even times I wanted to take out my brain and stomp on it. So this is my guide for anyone who wants to try bankswitching in Atari 7800 Basic but has been scratching their heads in doing so. The first thing to understand about bankswitching is each bank is 16K in size. So if you want a game to be 128K, for example, there will be 8 banks (128*8=16). Now the biggest problem I've had was all the graphics stored, colors, dim values, etc. would be placed in the first bank. This would cause an error: too much in 16K. So the best thing to do is to move most of the graphics (not the plotsprites, but where the graphics are stored) to the last bank. The only graphics you may want to keep in bank 1 are title graphics and maybe the game over graphics. Otherwise, having all the graphics stored (think of a vault) in bank 1 would take up space and there won't be any room for other code. Make sure to leave all your dim values, color codes, romsize, etc. in bank 1. So if you have a 128K game, the majority of your graphics should be stored in bank 8. The game I'm working on is using the engine from Atarius Maximus' Zelda example. What I've learned is to divide areas of the game, such as the overworld, dungeon, cave, etc. into banks. For example, the game starts in the overworld in bank 2. Now how could you start a game in bank 2 instead of the default bank 1? You need to tell 7800 Basic to goto a Label and its bank number in bank 1 if a certain condition, like the fire button pressed, is met: (bank1: 7800 already knows this is the first bank and doesn't need to told.) if joy0fire then goto __mainloop bank2 bank 2__mainloopIn this example, I'm telling 7800basic to go right to the overworld in bank 2 when the joystick button is pressed. Keep in mind there is another label called "mainloop" so I labeled this one "__mainloop" to prevent errors. You can name any label you want just as long as there isn't another label with the same name. Also helpful is to use "rem -----------------------------------------------------------" to help divide up banks, and even sections within banks, to find them easier. Just make sure there is a space between "rem" and the hyphens otherwise 7800 Basic will call out an error.Here's an example of what could a game could look like coded in 128K: (bank 1- we don't need a label since 7800basic already knows it's bank 1) [dim values] [color values]__title (Labels must NOT be indented) [title graphics] if joy0fire then goto __overworld bank2 else goto _title (notice there's no space between bank and 2.)__skip_title__game_over [game over graphics] if joy0fire then goto __title else goto __game_over__skip_game_over rem ------------------------------------------------------------------------------------------------------------------- bank 2 (notice the space between "bank" and "2" with indentation. Also notice the "bank 2" comes BEFORE the label.)__overworld [coding] if boxcollision (herox,heroy,16,16,dungeonx,dungeony,16,16)then gosub __dungeon bank3 (notice if you want to return to the overworld, you need a gosub and return.) if boxcollision (herox,heroy,16,16,cavex,cavey,16,16)then gosub __cave bank4 return [data statements,etc.] rem ---------------------------------------------------------------------------------------------------------------- bank 3__dungeon [more coding] if boxcollision (herox,heroy,16,16,exitx,exity,16,16)then gosub __overworld bank2 return [data statements,etc] rem -------------------------------------------------------------------------------------------------------------------- bank 4 __cave [more coding] if boxcollision (herox,heroy,16,16,caveexitx,caveexity,16,16)then gosub __overworld bank2 return [data statements,etc] rem ----------------------------------------------------------------------------------------------------------------- bank 5 (reserved) bank 6 (reserved) bank 7 (reserved) bank 8 (most of your graphics go into this bank. Again, think of this as a vault.) incgraphic gfx/hero.png incgraphic gfx/titleblanks.png incgraphic gfx/alphabet_8_wide.png You may want to use a separate bank for the game over graphics, codes, etc. if you don't have room in bank 1 but usually, there will be. You just need to tell it where to go if your character loses its HP. Let's say if you wanted to go back to the title screen, and if that's located in bank 1, then you'll need to add a label and tell it to go to bank 1: if joy0fire then goto __title bank1 If you were to do a 256K game, it's the same concept, only you'll be using 16 banks instead of 8. Hopefully, this might help anyone who has been having trouble with bankswitching.