News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - RetroRain

Pages: [1] 2 3 4 5 6 ... 14
Personal Projects / Re: Mini 6502 Assembler for C++ and C# projects
« on: October 18, 2019, 01:28:48 pm »
Very interesting.  I've been delving deeper into C++ over the last 6 months, more specifically in the game development department. ;)

C++ is very complex, but once you know what you're doing, it can be a lot of fun.

It's nice to see a 6502 C++ assembler.  I will definitely bookmark this thread for future reference.

By the way, for those of you who have PMed me with questions or advice, please don't take it personal if I haven't replied back.  I know its been months, possibly over a year for some people.  Real-life has taken precedence over ROM hacking, and I haven't been on this forum in a long time.  And at the moment, what little free time I have, my focus has been on C++, as I'm attempting to develop an indie game that I hopefully can later sell.  I love ROM hacking, always have and always will, but unfortunately it doesn't pay the bills.

Take care everyone and good luck with your projects.


Personal Projects / Re: Super Mario Land 2 DX [Updated to v1.12]
« on: February 08, 2018, 11:27:45 pm »
That SuperGB border looks beautiful.  And I love the summer starry-night vibe it gives me.  Nice work!

Would you buy a new console that is 8-bit, and puts out brand new retro games, and that's not made by Atari?

It's a one-question survey.

It's a simple question with a simple answer to choose from: Yes/No/Maybe

Would you buy it?

ROM Hacking Discussion / Re: Mega Man Remastered
« on: September 15, 2017, 02:17:12 pm »
I'm sorry xttx, I have not looked into it.  I had stepped away from ROM hacking for a few months.  It was my intent to redo this Remastered hack, because there are quite a few problems with it.  A lot of my code is causing lagging problems, there is a major bug with the weapon-switching/select combo, that pushes the values onto the stack, and would eventually crash the game.  And aside from the nestopia bug you pointed out, there a couple of other quirks that I'm not happy about.  This hack was my first CHR-ROM conversion and SRAM hack, and my code is very messy, and all over the place.  And there are things that now, I would have done differently, especially as I have a better understanding at 6502 ASM.

I'm sorry for the inconvenience, but have patience.  I plan on re-doing this soon. :)

Programming / Re: NES Question - Best Method for Sprite Engine?
« on: August 24, 2017, 01:11:03 pm »
Thank you Disch.  I didn't have a chance to reply the past couple of days.  Just been so busy with work.  I read your post on my phone, but the table didn't look right.  I'm looking at it now from my PC, and it looks right.  I will take a closer look at your post tomorrow, so I can absorb the information from it.  I just haven't had much time the past couple of days.

Thanks for the information.  I'm sure it will help clear things up a bit. :)

Programming / NES Question - Best Method for Sprite Engine?
« on: August 22, 2017, 11:48:57 am »
I know how sprites work (Ycoor, TileID, Pal/Rot, Xcoor), and how to get them to the screen.

Most tutorials and documents tell you how to handle sprites, but there is very little information when it comes to game logic, in coding a sprite engine.

Most games are not a singe 8x8 sprite tile.  Characters and enemies are made up of a bunch of 8x8 sprite tiles.  This is where it becomes difficult for me.

Let's say I have this routine, which is only executed once when the player object is created:

Code: [Select]
; initialize player object

lda #$60
sta player_xpos
lda #$50
sta player_ypos

; simply set the player's x and y position on the screen

Simple enough, right?

I know how to draw all of the sprites for the player, but I don't know how to do it in the most efficient way.  So far, most of the ways I have done it, use up a ton of code.

Let's say my player objects consists of 9 sprite tiles (Megaman, for example, while he is standing, is 9 8x8 sprite tiles)

I have this routine, which is executed every frame:

Code: [Select]
; player handler

; draw player - method 1

; The X and Y coordinates are the center origin of the player, so that if the player has to be mirrored, he'll be mirrored smoothly

; ***
; ***
; ***

; These asterisks represent the 9 8x8 sprite tiles

; One way I have done it, is start in the middle, and draw from there

; ***
; *+*
; ***

So, the plus sign represents the x and y position

lda player_ypos
sbc #$08
sta $200

; store the y for the first tile

lda player_xpos
sbc #$08
sta $203

; store the x for the first tile

; Then draw the tile and pal/rot values

lda #$00
sta $201

lda #$00
sta $202

When ROM hacking, I've seen games keep a table of the tile ID and pal/rot value right next to each other, so I tried programming that way too.  That way seems very difficult as well.  I'm manually programming every single sprite to the screen.  There has to be a more efficient way of doing things.  I just can't wrap my head around the logic.

Mirroring is a pain, because depending on which direction (left or right) the sprite is facing, the tiles that were supposed to be on the left side, now have to be on the right, but the middle can stay the same.

There are a few different ways that I have used to get a player sprite to appear, but the coding is intensive.  Is there a way to efficiently create a sprite engine, so that no matter what sprite you want to display, you can display all of the tiles, and correctly depending on the mirroring?

I have even tried making the xpos and ypos the top-left corner of the player, but then when it comes time to mirroring, it doesn't look right.  Unless I were to simply change the x/y positions when mirroring occurs.

I'm going to do some more studying of ROMs to see how the sprite engines are handled, but if anyone has any suggestions, that would be of great help.


Programming / Re: C++ Enumeration error in switch statement
« on: July 23, 2017, 01:07:57 am »
Oh okay thanks for clarifying that Disch.  I got the program to run using those single quotes, but even though it ran, I still got compiler warnings.  I had no idea that "using namespace std" was the culprit.

The book I have, C++ Primer Plus, most of the examples, at least most of the parts I have read, have "using namespace std" in the examples.  It does explain the other way of "using std::cout", it's just that most of the examples have used the other way, so I got in the habit of using it.

At least now I know which habit to break. :P  I'm telling ya, C++ is a very complex language.

Thank you for your input.  Oh, and you get a giant cookie for helping. :)

Programming / C++ Enumeration error in switch statement
« on: July 22, 2017, 10:47:18 am »
I have this code (it's not really a lot as it looks) that, when run, is showing these compiler errors:

Code: [Select]
In function `void logic()':
`left' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)
`right' undeclared (first use this function)

The problem is, I can't figure out why it is producing this compiler error.

I have a switch statement in the function below, called void logic(), and it checks stop, up, down, left and right.  There is no problem with the first three enumerators, but it has a problem with left and right.  If I comment left and right (so it doesn't execute), the program runs fine.

I don't get it, because the enumators are all declared.  Why is there a problem with left and right?

If it helps any, I am coding with Dev-CPP.

Code: [Select]
#include <iostream>
#include <conio.h>
using namespace std;

void setup();
void draw();
void logic();

enum direction {stop, up, down, left, right};
direction dir;

int snakeX, snakeY, snakeLength, lives, score;
int roomLength, roomHeight, appleX, appleY, i, j;

int main()
    return 0;

void setup()
    roomLength = 40;
    roomHeight = 20;
    snakeX = roomLength / 2;
    snakeY = roomHeight / 2;
    appleX = rand() % roomLength;
    appleY = rand() % roomHeight;
    snakeLength = 1;
    lives = 3;
    score = 0;
    dir = stop;

void draw()
    //first row
    for (i = 0; i < roomLength; i++)
        cout << "+";
    cout << endl;
    //the middle rows
    for (j = 1; j < roomHeight-1; j++)
        cout << "+";
        for (i = 1; i < roomLength-1; i++)
            if (i == snakeX && j == snakeY) cout << "O";
            else if (i == appleX && j == appleY) cout << "A";
            else cout << " ";
        cout << "+" << endl;
    //last row
    for (i = 0; i < roomLength; i++)
        cout << "+";

void logic()
    switch (dir)
        case stop:
        case up:
        case down:
        case left:
        case right:

Right where case left and case right are, is where the errors are being pointed out.  Yet I can see no error at all.  There are no typos at all.  You can copy and paste this code yourself in any IDE, and see for yourself.  The header file conio is just for keyboard input that I haven't gotten to yet, so it doesn't matter if it is there or not.

If anyone can tell me why it is producing this error, you can have a giant cookie!


Okay, so I did some searching.  This article tells you that the compiler will give you errors if one of the enumerators is not handled properly (

So that got me thinking... I tried using single quotes on my enumerator, and the program ran.

Code: [Select]
void logic()
    switch (Edir)
        case stop:
        case up:
        case down:
        case 'left':
        case 'right':

I just had to put left and right in single quotes for it to run.  I most likely have to do that for other three as well, but I honestly didn't know that you had to do that.

Personal Projects / Re: Super Mario Land 2 DX (WIP)
« on: July 05, 2017, 12:08:10 pm »
Looks much better dude. :thumbsup:

Personal Projects / Re: Super Mario Land 2 DX (WIP)
« on: July 04, 2017, 06:20:32 pm »
I feel that the moon ground color should be the same color as the spikes that you have there.  Otherwise it looks like it could be snow.

Interesting concept.

I have some ideas for you:

- Make Mario and Luigi look like Bob Hoskins and John Leguizamo, and give them the outfits they had in the movie.  Then, either in the middle of the game, or 3/4 through the game, or by finding some special powerup, they change costumes into the Mario outfits that we are familiar with.

- I would also call it Super Mario Bros: The Movie Game, but that's just my personal preference.

- You can change the vegetables into things like wrenches and hammers.  You can change the POW block or use some way of having the players be able to do Princess Peach's hover (the rocket shoes they used in the movie).  Naturally, I wouldn't make Toad or Peach playable characters (I would remove them from the select screen), but this is your hack, and you should do it how you want it.

It is definitely an interesting concept, and I look forward to seeing more.

I can't get over how good SMB2 is as a base for making entirely different games.  This hack and SpiderDave's hack, are just a couple of very interesting concepts being made out of an existing game.  Nice work guys! :)

ROM Hacking Discussion / Re: Join Lamross in Hell (SMB2 Hack)
« on: June 20, 2017, 12:14:24 pm »
Interesting hack.  I like all of the concepts you listed.

If you don't mind me asking, what level editor are you using to do your levels?

I have played around with SMB2 Discombobulator in the past, but I just don't like that editor.  I feel like it's restricted, like making levels is a pain to do.  I think that is why I've never really did any level hacks of this game.

ROM Hacking Discussion / Re: Mega Man Remastered
« on: June 16, 2017, 05:21:25 pm »
I will definitely be looking into it.  It was also brought to my attention that there are a couple of bugs in my TMNT hack that need fixing.  It is my intention to fix these hacks, but real-life has to take priority at the moment.  I will get back to them when I have some time.

I apologize for the bugs in these hacks.  Just be patient, they will be fixed in the near future.

Newcomer's Board / Re: Final Fantasy 1 Magic Upgrade Idea
« on: June 15, 2017, 12:24:23 pm »
ugggghhh... I had a reply all typed out and then accidentally closed my window and lost it.

I'm not typing all that again right now.  Maybe I'll come back later.  Sorry.   :-[

I HATE when that happens.  It's the worst thing ever.  That, or on some forums (one of the other forums I go to) has a timer.  If you wait too long to post, when you finally hit reply, you automatically get logged out, and then everything you typed is no longer there even if you hit the back button.

That's why I got into the habit of copying everything I'm typing in my post, to notepad, if I'm finding it's taking me a while to make that post.

Personal Projects / Re: Super Mario Land 2 DX (WIP)
« on: June 12, 2017, 04:28:35 pm »
I didn't know that you could play GameBoy Color games on the older GameBoy systems.  But then again, I didn't own many GameBoy games to begin with.  I seem to remember the ones that I had, wouldn't work on the original GameBoy when I tried them.

Why would some games be compatible and others not?  Seems silly to me.

But still, I never liked the "Only for" shit.  It just screams to me "Ha ha you can't play this unless you buy our system!  Otherwise you're screwed!"  It just rubs me the wrong way.

Personal Projects / Re: Super Mario Land 2 DX (WIP)
« on: June 12, 2017, 12:57:05 am »
Very nice but you missed one thing: At the below right should say: Only for Game Boy Color

I think the box art that modestlaw made is just fine the way it is.  The "Only for" logo is stupid, because it already says GameBoy Color on the left side, and it would interfere with the Nintendo Seal of Quality and that turtle in the lower-right corner.

ROM Hacking Discussion / Re: Mega Man Remastered
« on: June 11, 2017, 02:15:40 am »
The lagging issue is the last thing that I'll be working on.  I have to fix the other bugs first.

Anyway, I began working on them!  I already fixed the select/weapon-toggle palette bug.  It will no longer happen. :)

ROM Hacking Discussion / Re: Mega Man Remastered
« on: June 09, 2017, 05:17:45 pm »
Yeah I think I'm just going to try to fix these things.  I'll do my best to fix the lagging.  If I can't, I'm sorry, but I'll try.  I just don't have the time to redo all of that work.

ROM Hacking Discussion / Re: Mega Man Remastered
« on: June 09, 2017, 05:02:02 pm »
Thank you ShadowOne333. :)

I still have to decide what to do with this hack.  Do I try to fix the problems with it, or redo it on a ROM without the CHR-ROM?  What if I can't fix the lagging?  These are the kinds of things I have to consider.

Personal Projects / Re: Super Mario Land 2 DX (WIP)
« on: June 09, 2017, 04:51:19 pm »
That looks great, although me personally, I'd add the word "Sorry", as in, "Sorry, this hack can only be played on".  It's no big deal.  It's just how I am.  To me, it shows a little bit of compassion.

As for the color choices of the water color, that's a tough call.  I'd say definitely the first or second.  But the colors are more vibrant in the first one, and you can actually see the green seaweed and yellow sand.

But also, I'm a little biased, as I love summer, and I'd go with the one that is more summer-ish to me.  I'm torn between the first and second, but I'll choose the first one.

I was curious to see what the first image would look like with the second image's sky color.  So I changed it to see:

And I must say, I really like it!  What do you think?

Pages: [1] 2 3 4 5 6 ... 14