Is that a joke?Dr. Floppy wrote:Thanx! Although I suspect it has more to do with me being a control freak than anything else...qbradq wrote:You're coding your game in a hex editor? Wow, that is hard-core
On the plus side, I figure this is a good way to force myself to learn all this stuff (scrolling handlers, music engines, etc.) honestly. Once I've built an entire MMC5 game from the ground-up, I'll have more solid ground upon which to pursue the MMC7 Project.
Mapper Decapping?
Moderators: B00daW, Moderators
-
Dr. Floppy
- Posts: 47
- Joined: Mon May 09, 2011 7:02 pm
No. I really am a control freak, particularly when it comes to creative projects. I really want to code this stuff from scratch as much as possible, knowing that it'll be worth it in the long run because it'll help me better understand NES programming (especially as it pertains to MMC5).qbradq wrote:Is that a joke?
And, someday, having banked credibility from this "Alpha" game, I hope to pursue the concept of creating a custom mapper called MMC7, which I believe would be the best showcase for my "Omega" game. (A real-time RPG with 4-screen mirroring, allowing for artifact-free diagonal scrolling and expanded sound channels.)
Both of these plans coincide well with their flagship games' respective mission statements; "Alpha" shall be a celebration of what was, whereas "Omega" will be a celebration of what could have been.
-
Dr. Floppy
- Posts: 47
- Joined: Mon May 09, 2011 7:02 pm
In that case, it might be advantageous to look into something along those lines. My only problem with hex editors is that there's no realistic way of adding comments to each section of code. I believe this is one of the major strengths of assemblers?tepples wrote:Most NES game programmers use an assembler, which gives just as much control as a hex editor but it's more maintainable.
-
Dr. Floppy
- Posts: 47
- Joined: Mon May 09, 2011 7:02 pm
How does anything get done? I figure out what needs to happen, diagram various ways of making it happen, revise the diagram until I've got a "best-fit" approach, translate it 6502 code, type it into the ROM, then try it out. If it works, yay! If it sucks, I open the Debug window and begin tracking down the problem. Eventually, bugs are found/fixed and the show goes on!3gengames wrote:You programming in hex? How do you get anything done? You'll be 2 decades from now releasing any demo even.
As for demos, I've already got a functional (if unrefined) title screen, and am currently working on the Transition Handler to progress to Level Zero. Level Zero is going to start out as a panoramic single screen, as I want to establish main character controls before I begin work on the scroll engine, maps, enemies, etc. When I feel that the controls are in decent shape, I'll consider releasing that as Demo1.
What are the major assemblers in circulation now, and of those, which do you personally recommend?3gengames wrote:Pick up an assembler, and try it. And even if you don't like it, don't go back.
I use NESASM3. Everyone bags on it, but yet a lot of times I see people use ASM6. I tried to use ASM6, but to me, NESASM3 is much more flexible and less of a hassle to use. Asm6 is just difficult.
And then there's that CA65 one, not sure about that, but can't be that bad since more people use that I think.
And yeah, they's how you do it with an assembler, but you can do it 500x faster and even comment your code and rewrite it in a matter of minutes. Even back in the day nobody hand typed the code in I don't think. @_@
And then there's that CA65 one, not sure about that, but can't be that bad since more people use that I think.
And yeah, they's how you do it with an assembler, but you can do it 500x faster and even comment your code and rewrite it in a matter of minutes. Even back in the day nobody hand typed the code in I don't think. @_@
-
unregistered
- Posts: 1193
- Joined: Thu Apr 23, 2009 11:21 pm
- Location: cypress, texas
I recommend asm6; it was recommended to me.Dr. Floppy wrote:What are the major assemblers in circulation now, and of those, which do you personally recommend?3gengames wrote:Pick up an assembler, and try it. And even if you don't like it, don't go back.
[url=http://nesdev.com/bbs/viewtopic.php?t=7451&postdays=0&postorder=asc&start=30]here...[/url] tokumaru wrote:Check this thread for some discussion about assemblers. It has a poll where people voted for their favorite assemblers.
After getting used to using macros, expressions, and relocatable addresses, I can't imagine using a hex editor to write anything of any size. Only time I did that was when I was ripping NSFs, writing a 16 byte program or something like that is actually easier in a hex editor IMHO. 
Dr.Floppy, I made a cart a while back that does 4-screen nametables and has 4 channels of expansion sound (on NES, with no system mods needed). You interested? I have a bunch of the boards sitting around since I never built any to sell.
Dr.Floppy, I made a cart a while back that does 4-screen nametables and has 4 channels of expansion sound (on NES, with no system mods needed). You interested? I have a bunch of the boards sitting around since I never built any to sell.
-
Dr. Floppy
- Posts: 47
- Joined: Mon May 09, 2011 7:02 pm
IMO, the most basic thing assemblers provide that I can't imagine living without is the possibility to name variables and addresses.Dr. Floppy wrote:I believe this is one of the major strengths of assemblers?
Consider the following scenario: You have a functional program with a subroutine you use a lot. Say you find a bug in a piece of code that comes before this subroutine, and to fix the bug you have to make the code 1 byte longer, meaning that the subroutine I mentioned before has to be pushed 1 byte forward. If you use this subroutine 20 times throughout your program, you'll have to remember and find them all to change the address that comes after the JSR instruction. Forget one and your program might crash.
The program with hex edited programs is that they are not maintainable at all. If you need to make any change, it's hell. You have to practically check and rewrite the whole program to make even the smallest change.
Actually, there are a number of ways to achieve artifact-free 8-way scrolling without 4-screen mirroring, even without the aid of mappers. All you have to do is mask out the artifacts, either with timed code (vertical mirroring) or at the expense of a few sprites (horizontal mirroring).Dr. Floppy wrote:...with 4-screen mirroring, allowing for artifact-free diagonal scrolling...
-
Dr. Floppy
- Posts: 47
- Joined: Mon May 09, 2011 7:02 pm
True, true. I've also heard rumors that diagonal mirroring would allow for artifact-free eight-way scrolling (although definitive proof remains elusive).tokumaru wrote:Actually, there are a number of ways to achieve artifact-free 8-way scrolling without 4-screen mirroring, even without the aid of mappers. All you have to do is mask out the artifacts, either with timed code (vertical mirroring) or at the expense of a few sprites (horizontal mirroring).Dr. Floppy wrote:...with 4-screen mirroring, allowing for artifact-free diagonal scrolling...
Still, I can't be the only one who yearns for a day when we don't have to perform such logistical gymnastics / sprite trade-offs?
Genesis does
Diagonal mirroring would have a tiny artifact in all four corners, which is still better than an artifact spanning an entire side.
That day arrived in 1988 when the Mega Drive came out.Dr. Floppy wrote:Still, I can't be the only one who yearns for a day when we don't have to perform such logistical gymnastics / sprite trade-offs?