Jump to content

Photo

Mega Italian Twins (2600 W.I.P.)


41 replies to this topic

#1 jrok OFFLINE  

jrok

    Stargunner

  • 1,155 posts

Posted Thu Aug 13, 2009 1:44 PM

I've decided to take a stab at a Super-Mario port. I'm not a big fan of using unlicensed stuff in games. I can appreciate all points of view on this, but part of the fun of programming a game for me has always been trying to come up with unique mechanics, rather than trying to simulate other games.

SMB is a really interesting and tempting challenge, though. The core mechanics were devious, simple, fun and addictive. So my goal here is not going to try to model the actual world maps, but rather to see how much of the core gameplay and "feel" I can mimic on the 2600.

Here's what I will try to squeeze in:

- A smoothly scrolling gameworld
- A time limit
- Solid jump-and-run mechanics
- Coin-collecting
- Platform interactivity (i.e. bumping platforms for bonuses/ tripping enemies, etc)
- Super Growth Mushroom (add brick-breaking power)
- Fire Flower (add fireball power)
- Flagpole level bonus
- Four Enemy types
- Multiple Levels/Worlds

I've attached a small demo of world movement, jump/run mechanics. This is still a rough draft, but so far it feels a little bit like SMB to me. The player sprite has limited bi-directional movement (like Mario). The world scrolls in from the right when he reaches his bounding box at mid-screen, but leftward movement is sprite-based and limited to left edge of the screen. I think my next steps will be to generalize the platform logic a bit so I can begin to build platforms of different lengths and compositions. Screenshots and current BIN below.

mip1.gif mip2.gif mip3.gif

Attached File  MIS.bas.bin   16KB   222 downloads
Attached File  MIS.bas.zip   3.78KB   164 downloads

Latest version (16k + Superchip):
Attached File  MIT6.bas.bin   16KB   232 downloads
Attached File  MIT6.bas.zip   3.36KB   184 downloads

Edited by jrok, Mon Aug 17, 2009 3:00 PM.


#2 smartkitten26 OFFLINE  

smartkitten26

    Chopper Commander

  • 146 posts

Posted Thu Aug 13, 2009 1:57 PM

Nice job!

#3 atari2600land OFFLINE  

atari2600land

    My favorite channel is Channel F.

  • 11,791 posts
  • It's groovy.
  • Location:Salem, Oregon

Posted Thu Aug 13, 2009 3:04 PM

This is fantastic! After a while of going right, though, it began to emit a strange, high pitched tone (like AUDF0 or AUDF1 was at 0) In-game music would probably solve that problem. Keep going with this, although I do wonder whatever happened to Charge!

#4 jrok OFFLINE  

jrok

    Stargunner

  • Topic Starter
  • 1,155 posts

Posted Thu Aug 13, 2009 3:32 PM

This is fantastic!


Thanks!

After a while of going right, though, it began to emit a strange, high pitched tone (like AUDF0 or AUDF1 was at 0) In-game music would probably solve that problem.


Weird. I have no audio at the moment, so I can't troubleshoot. The strange thing is, I don't remember setting any audio channels at all, so I'm not sure how this woudl be possible.

Keep going with this, although I do wonder whatever happened to Charge!


Actually, programming this is helping me with Charge. I've been having a few issues with getting my groups of enemy soldiers to clear smoothly at both screen edges, so I'm sort of hoping that a fresh perpective on the problem might lead to one of those "Eureka" moments.

Cheers,
Jarod.

#5 jrok OFFLINE  

jrok

    Stargunner

  • Topic Starter
  • 1,155 posts

Posted Thu Aug 13, 2009 5:53 PM

This is fantastic! After a while of going right, though, it began to emit a strange, high pitched tone (like AUDF0 or AUDF1 was at 0) In-game music would probably solve that problem. Keep going with this, although I do wonder whatever happened to Charge!


Okay, you were right! The problem was that I cannibalized a lot of the Charge code for this, and I had a few sound triggers that were pointed at altered operations. I just zero'd all channels for now (fixed BIN is in OP).

Thanks,
Jarod.

Edited by jrok, Fri Aug 14, 2009 1:04 PM.


#6 yuppicide OFFLINE  

yuppicide

    I am the Black Knight. Give me your money!

  • 6,933 posts
  • Location:New Jersey

Posted Thu Aug 13, 2009 7:43 PM

Looks awesome, J. Good idea with the fresh start to get a new perspective.

#7 Atari Dogs OFFLINE  

Atari Dogs

    Stargunner

  • 1,677 posts
  • Location:ohio

Posted Fri Aug 14, 2009 7:00 AM

Nice work. In game music would be great.

Since you don't like using unlicensed characters, can we just call the siblings Frank and Sly?

#8 jrok OFFLINE  

jrok

    Stargunner

  • Topic Starter
  • 1,155 posts

Posted Fri Aug 14, 2009 9:35 AM

*Update*

Okay, I think I've got a good, somewhat elegant tile-drawing system in place. The platforms now vary in size from 1 tile to 6 tiles. Basically, I've reserved 6 bits each to draw a top-tier tile and a mid-tier tile. New platform sizes are pulled out of a pair of tables as the previous ones are cleared left. The bounds for each tile are drawn by multiplying the size indicated in the table by 8.

The good thing about this system is that it makes level generation a breeze. It's fairly tight right now, although it could do with a little more tightening at edge clearance. I think the next step will be to draw intermediate platforms to help with designing jumping puzzles. I'm considering flickering P0 to accomplish this. I've disabled the "mystery tiles" in this build while I make some decisions about how they should be accessed in memory. With a little work, I think I can make a pretty straightforward method of defining the look and function of individual tiles in a platform (like "The Magic Mushroom), and even define things like moving platforms on the fly. If I can generalize and document this engine well enough, I think it might even be a neat platforming template to release to the bB community someday.

Cheers,
Jarod.

EDT: I fixed a bug that prevented you from leaping on the top platforms.

Attached File  MIS2.bas.bin   16KB   170 downloads
Attached File  MIS2.bas.zip   3.55KB   144 downloads

Edited by jrok, Fri Aug 14, 2009 9:58 AM.


#9 jrok OFFLINE  

jrok

    Stargunner

  • Topic Starter
  • 1,155 posts

Posted Fri Aug 14, 2009 12:55 PM

*Update*

Here's a version that includes a "flex" tier for the platforms. Of course, its not very "flexible" right now :), since it just sits halfway between the top and middle tiers (or halfway between the bottom and middle tiers). I'm using the multisprite P1 to draw all the platforms right now, so the vertical sprite layout for platforms is:

P4(Clouds)
--
P1(Top Tier)
---
P3(Flex Tier)
---
P2(Bottom Tier)
---
P3(Flex Tier)
---
GROUND

Even the above seems a little restrictive for my taste, though, so I'm considering alternatives. Right now I'm using P0 to draw the unrestricted player's sprite, but I'm leaning towards either using an alternate frame of P0 and the missiles to draw the limited flex platform (three tiles max), or maybe even using the missiles to draw the player's sprite so I can have an unrestricted flex platform that could be *anywhere* (i.e. not just in one of two possible Y positions). What would be interesting about either of these solutions is that I could use the free-moving P0 platforms to make interesting kinds of platforms, like elevators that float up and down.

Also, considering all the fixed-point math going on here, I'm seriously considering switching to the Super Chip. It would make life a whole lot easier :lol:

EDT: Implemented upper and lower flex platforms
EDT: Re-enabled Mystery tiles
Attached File  MIS4.bas.bin   16KB   173 downloads

Edited by jrok, Sat Aug 15, 2009 8:53 AM.


#10 gambler172 OFFLINE  

gambler172

    River Patroller

  • 3,374 posts
  • none
  • Location:germany

Posted Sat Aug 15, 2009 9:53 AM

Hi Jarod
Looks very promising..........
greetings Walter

#11 jrok OFFLINE  

jrok

    Stargunner

  • Topic Starter
  • 1,155 posts

Posted Sat Aug 15, 2009 12:22 PM

I took a crack at some SMB music with batari's SID2TIA driver. I still have to figure out how to incorporate this into my program, but I think it sounds kind of good.

Attached File  MIT_music.bas.bin   8KB   247 downloads
Attached File  MIT_music.bas.zip   1.62KB   151 downloads

Edited by jrok, Sat Aug 15, 2009 12:38 PM.


#12 jrok OFFLINE  

jrok

    Stargunner

  • Topic Starter
  • 1,155 posts

Posted Sun Aug 16, 2009 1:48 PM

*Update*

I've upgraded the program to use the SARA chip RAM. It works fine in Z26, automatically detecting the bankswitching routine and the SC RAM. But for some reason the program will not load in my copy of Stella 2.6.1, whether I set it to auto-detect the cartridge or manually set the cartridge to F6SC. I've noticed a few other "quirks" with my personal version of Stella, so I'm curious whether this is a real bug or just a problem with my setup. If anyone downloads this version and tests it in Stella, could you let me know if you can reproduce this bug?

Otherwise, the main change I've made is that the level now "ends." Once you've reach the extent of the world data, the world stops moving and player sprite can run rightwards past its bounding box. If the player reaches the right end of the screen, the game reboots. Not a huge change but its an important part of the gameplay. I've also reorganized the memory to map all non-fixed-point variables to SARA addresses, so I can write some fixed point enemies and powerups to populate the world. I've left my standard "Running Guy" sprite in place for now, although at some point I will redesign the sprite to be more "Mario-esque." I'm still working on a way to incorporate the music, so hopefully that will be in the next build, along with a few enemies.

Cheers,
Jarod.

Attached File  MIS5.bas.bin   16KB   178 downloads
Attached File  MIS5.bas.zip   3.32KB   126 downloads

Edited by jrok, Mon Aug 17, 2009 7:48 AM.


#13 sandmountainslim OFFLINE  

sandmountainslim

    Vicar of Fonz

  • 5,671 posts
  • Climber 5 Champion since Jan 2005
  • Location:Between Macon and Muscle Shoals

Posted Sun Aug 16, 2009 2:31 PM

The latest version will not load in my Stella 2.76, I only get a purple and black screen.
Wp

#14 stephena OFFLINE  

stephena

    River Patroller

  • 3,409 posts
  • Stella maintainer
  • Location:Newfoundland, Canada

Posted Sun Aug 16, 2009 2:32 PM

I've upgraded the program to use the SARA chip RAM. It works fine in Z26, automatically detecting the bankswitching routine and the SC RAM. But for some reason the program will not load in my copy of Stella 2.6.1, whether I set it to auto-detect the cartridge or manually set the cartridge to F6SC. I've noticed a few other "quirks" with my personal version of Stella, so I'm curious whether this is a real bug or just a problem with my setup. If anyone downloads this version and tests it in Stella, could you let me know if you can reproduce this bug?

This ROM doesn't seem to work in the latest released version of Stella (2.8.4), or in the internal test builds (3.0alpha2). And it doesn't work for me on a KrokCart either, so I'm inclined to think that the ROM has a problem, and z26 is 'incorrectly' showing it as working.

Also, you should probably upgrade to Stella 2.8.4, as version 2.6.1 is quite old. As for what's going on, I can't really say. Perhaps you're mistakenly reading from write port addresses, which will actually erase whatever is stored in that location.

EDIT: Correction, it seems you're starting in bank 0, but the instructions I see in the PC in the debugger don't correspond to the disassembly. As for why that's happening, I don't know.

Edited by stephena, Sun Aug 16, 2009 2:37 PM.


#15 jrok OFFLINE  

jrok

    Stargunner

  • Topic Starter
  • 1,155 posts

Posted Sun Aug 16, 2009 4:12 PM

This ROM doesn't seem to work in the latest released version of Stella (2.8.4), or in the internal test builds (3.0alpha2). And it doesn't work for me on a KrokCart either, so I'm inclined to think that the ROM has a problem, and z26 is 'incorrectly' showing it as working.

Also, you should probably upgrade to Stella 2.8.4, as version 2.6.1 is quite old. As for what's going on, I can't really say. Perhaps you're mistakenly reading from write port addresses, which will actually erase whatever is stored in that location.

EDIT: Correction, it seems you're starting in bank 0, but the instructions I see in the PC in the debugger don't correspond to the disassembly. As for why that's happening, I don't know.


Thanks for the report. I suspect that it has to do with the order of the modules I am including, but I'm not sure.

#16 smartkitten26 OFFLINE  

smartkitten26

    Chopper Commander

  • 146 posts

Posted Mon Aug 17, 2009 10:44 AM

.


Edited by smartkitten26, Tue May 19, 2015 1:23 PM.


#17 jrok OFFLINE  

jrok

    Stargunner

  • Topic Starter
  • 1,155 posts

Posted Mon Aug 17, 2009 11:01 AM

It just displays a frozen screen on my Stella


Yes, it is a confirmed bug with the superchip version (MIS5.bas.bin). That version works in Z26, but this seems to have something to do with an emulation error in Z26 that allows the program to run correctly.

I'm reviewing my code, but I can rule out something as simple as reading from write port addresses (or vice versa). I've been very careful about using the read and write addresses. I'm almost positive that the problem is either somehow related to bankswitching routine itself, or with the way I am using the vertical blank. As soon as I sort it out, I'll post a fixed version and describe the fix as best I can.

Edited by jrok, Mon Aug 17, 2009 2:42 PM.


#18 jrok OFFLINE  

jrok

    Stargunner

  • Topic Starter
  • 1,155 posts

Posted Mon Aug 17, 2009 12:32 PM

*Update*

Okay, I believe I've sorted out the issue with the superchip version. I've tested the below in Stella 2.8 and it runs fine.

After reorganizing my vblank and rechecking every read/write on my superchip variables, it turned out that the solution was quite simple, although I couldn't find the issue documented anywhere so I'm not sure what the proper explanation would be. Apparently, in addition to the other listed restrictions on SARA address usage, you cannot use a SARA read variable for an "on" statement. I have suspicions about why this is, but it would be great if someone could explain exactly why this is the case.

Here's the fixed binary:
Attached File  MIT6.bas.bin   16KB   176 downloads
Attached File  MIT6.bas.zip   3.36KB   117 downloads

Now I just have to figure out a good way to use all this RAM :ponder:

Cheers,
Jarod.

Edited by jrok, Mon Aug 17, 2009 12:33 PM.


#19 sandmountainslim OFFLINE  

sandmountainslim

    Vicar of Fonz

  • 5,671 posts
  • Climber 5 Champion since Jan 2005
  • Location:Between Macon and Muscle Shoals

Posted Mon Aug 17, 2009 1:07 PM

Now that is smooth and runs on my Ole Steller just fine ;)
Can't wait to see this one take shape.
Wp

#20 nonner242 OFFLINE  

nonner242

    River Patroller

  • 3,664 posts
  • ALL your base ALL belong to us!!!!!!!!!!!!!!
  • Location:OHIO

Posted Mon Aug 17, 2009 1:49 PM

This looks very good!
Awesome job so far! :D

#21 atari2600land OFFLINE  

atari2600land

    My favorite channel is Channel F.

  • 11,791 posts
  • It's groovy.
  • Location:Salem, Oregon

Posted Mon Aug 17, 2009 3:56 PM

This looks wonderful so far, but IMO there are a few things missing: Holes and enemies. Do you plan on adding Goombas to the game? Also, there should be a flag to jump on at the end.

#22 jrok OFFLINE  

jrok

    Stargunner

  • Topic Starter
  • 1,155 posts

Posted Mon Aug 17, 2009 4:28 PM

This looks wonderful so far, but IMO there are a few things missing: Holes and enemies.


Oh crap, I forgot! :lol:

Yes adding both those are are the next step. Funny you should mention it, since as I am typing this, I'm working on the "holes" part. Basically, I'm turning those bottom tier platforms into gaps. It's just a matter of inverting a couple of ops; before, if you were within the bounds of the lower platform it would stop your movement. In the build I'm working on now, your movement is only stopped if you are outside those same bounds. The visual trick here will be to try to make a somewhat solid "hole" from available sprite flickers and/or other objects.

Do you plan on adding Goombas to the game? Also, there should be a flag to jump on at the end.


Goombas and Koopa Troopas are going in for sure. I'm also going to try to work in the Venus Flytrap monster and Bob-Bomb... (mainly because I like saying "Bob-Bomb" :))

The flag at the end is going in for sure, as soon as I can decide on a nice object implementation for it.

Cheers,
Jarod.

#23 atari2600land OFFLINE  

atari2600land

    My favorite channel is Channel F.

  • 11,791 posts
  • It's groovy.
  • Location:Salem, Oregon

Posted Mon Aug 17, 2009 5:18 PM

Nice to hear. Will there be different types of levels, like a cave level (like 1-2 in SMB), a swimming level (like 2-2), etc.? If this is going to be on a cart, I would definitely buy this.

#24 jrok OFFLINE  

jrok

    Stargunner

  • Topic Starter
  • 1,155 posts

Posted Mon Aug 17, 2009 8:15 PM

Nice to hear. Will there be different types of levels, like a cave level (like 1-2 in SMB), a swimming level (like 2-2), etc.? If this is going to be on a cart, I would definitely buy this.


It would be interesting to to see how many of these elements are workable. in the original you had Overworld, Underworld, Swimming and Castle levels, but it seems to me that the core engine didn't really change for the most part. Only the swimming portions were different, and even those weren't that different. I'm fairly confident I can throw some of that variety into the mix. I think most difficulty will be in things like the rotating fire windwmills in the castles. The most important thing for me right now is to get the platforming rock-solid and the world generation flexible and easy on the backend. Then I can figure out what else can be fit in.

#25 jrok OFFLINE  

jrok

    Stargunner

  • Topic Starter
  • 1,155 posts

Posted Sat Aug 22, 2009 10:31 AM

*Update*

I've added in some music, gap/pits, and a Goomba enemy sprite. Right now, the music still needs tweaking, the "pits" look more like eletrified bits of ground and the enemies are immortal and harmless, but I think this program is starting to take shape now.

Cheers,
Jarod.

Attached File  MIT7.bas.bin   16KB   210 downloads
Attached File  MIT7.bas.zip   3.96KB   178 downloads




0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users