+  RHDN Forum Archive
|-+  Romhacking
| |-+  ROM Hacking Discussion
| | |-+  Anyone Interested in Doing "SMB Special" for NES?
Pages: 1 ... 17 18 [19] 20 21 ... 39
Author Topic: Anyone Interested in Doing "SMB Special" for NES?  (Read 20 times)
tc
Guest
« Reply #270 on: April 10, 2008, 06:55:50 pm »

1MB? Yeow. I think you need to use some mapper magic for an NES to handle games that size.
frantik
Guest
« Reply #271 on: April 10, 2008, 06:55:58 pm »

i suspect he meant bytes?

since space is at a premium, you can shrink down the halfway entrance code

new code (also remove HalfwayPageNybbles)

Code:
PlayerLoseLife:
             inc DisableScreenFlag    ;disable screen and sprite 0 check
             lda #$00
             sta Sprite0HitDetectFlag
             lda #Silence             ;silence music
             sta EventMusicQueue
             dec NumberofLives        ;take one life from player
             bpl StillInGame          ;if player still has lives, branch
             lda #$00
             sta OperMode_Task        ;initialize mode task,
             lda #GameOverModeValue   ;switch to game over mode
             sta OperMode             ;and leave
             rts
StillInGame: lda #$00                 ;beginning of the level
SetHalfway:  sta HalfwayPage          ;store as halfway page for player
             jsr TransposePlayers     ;switch players around if 2-player game
             jmp ContinueGame         ;continue the game


you can also remove the warp zone related stuff such as
* ScrollLockObject_Warp (would be good if you removed the pointer to this subroutine from the table as well)
* WarpZoneObject

Also the in SMBS there are no whirlpools (holes which suck you down) so that needs to be disabled and removed as well.

new code to disable whirlpools.
Code:
Hole_Empty:
            jsr ChkLrgObjLength          ;get lower nybble and save as length         
            ldx AreaType                 ;get appropriate metatile, then
            lda #$00          ;render the hole proper
            ldx #$08
            ldy #$0f                     ;start at ninth row and go to bottom, run RenderUnderPart

remove these blocks of code:
* HoleMetatiles
* ProcessWhirlpools (and also remove call to ProcessWhirlpools in GameEngine)


that should free up a lil space.. not sure if it'll be enough.  firework code could also be dropped
hybrid
Guest
« Reply #272 on: April 10, 2008, 07:58:33 pm »

i thought they had warpzones in SMBS ? btw great work on this game
deespence2929
Guest
« Reply #273 on: April 10, 2008, 08:04:21 pm »

He must be talking about those picturesa of the levels.
frantik
Guest
« Reply #274 on: April 10, 2008, 08:21:42 pm »

no warp zones in SMBS.  in 4-2 there is what seems like a warp zone but it's a trap to send you back to the beginning of the level
Karatorian
Guest
« Reply #275 on: April 10, 2008, 11:43:54 pm »

Thanks for the hints on stuff that could be trimmed down. At the moment I'm working on relocating the level data and every fuction that requires direct access to it to bank one. While not as easy as moving the sound engine was, things are going pretty well. I've only got one function left that's unhappy about being relocated. But I know what's wrong with it, so it shouldn't be too hard to fix.

While this does free up tons of space, it's also lead to the code being hacked to bits. Perhaps just deleating unused functions will be cleaner and less likely to cause obscure bugs. If enough space can be freed that way, perhaps that'd be the best option. To fit in worlds 1 through 8, we'd need to delete about 300 bytes of stuff. Can we do that?

I actually though about relocating the level data to SRAM. That's how Final Fantasy does it, so I'm familiar with the technique. I'll have to look into that as it may be cleaner than my current method.

And yes, I meant bytes before. I don't know why I put the "k" in there. Perhaps my brain was still fried from the hour and a half drive home from work. He he.

Anyway, I've got to get some sleep. I may get the 1 - 8 expanded ROM patch up sometime tomorrow, but I may also have other things to do, so I may not.
SMB2J-2Q
Guest
« Reply #276 on: April 12, 2008, 03:45:11 pm »

How are things coming on the NES SMBS project?

Oh, and before you start distributing the complete patch with Worlds 1-8, please do a thorough test of all the levels first so that if you come across any outstanding graphical errors, you'll be sure to correct them before final release.

~Ben
Karatorian
Guest
« Reply #277 on: April 12, 2008, 05:11:08 pm »

After some consideration, I decided to use the SRAM loading method, rather than move all the level loading functions to a seperate bank. While I never finished the other method, it was ugly as sin and would have proabably introduced countless bugs that'd taken ages to track down and fix.

Basically, how it works is pretty simple. All the level pointers and whatnot are still in the main banks, just like the normal game. The actual object and enemy data has been moved into bank one. Also in bank one is a small function that copies the data into SRAM. From that point on, everything runs just like normal.

The total level data for worlds one through eight totals 8319 bytes. Of this, 269 bytes are headers and are stored in the main banks. The other 8050 bytes are the level data and are stored in a dedicated bank to be loaded into SRAM. This basically means that the level data (not including headers) could grow another 142 bytes before we have space issues. Hopefully that won't happen.

I've incorporated worlds 1 - 8, the changes to TerrainRenderBits for the latest patchs, and all the other changes so far. You can get the patch here.

While I agree that intensive testing is needed before we release a final patch, I wouldn't consider this patch final. There are still a lot of things to be done. Honestly, despite all the hard work done so far, I think we've really only done the easy bits so far. There are several enemies and powerups yet to be added. Additionally, there are several engine limiations that compromize the accuracy of the port.

Now that the levels are pretty much done. I intend to go straight into gameplay hacking. I'm interested in compiling a list of outstanding differences between the games so that we have a checklist of things that need to be done.

I'm going to clean up my source code and will be making it availible to those who wish to help out with ASM hacking.
Hamtaro126
Guest
« Reply #278 on: April 12, 2008, 05:31:18 pm »

Fantastic! I was planning to do levels in SRAM, But you beat me!

Can you please give me the source if possible, I really want to save space now.
deespence2929
Guest
« Reply #279 on: April 12, 2008, 05:41:36 pm »

Actually what could be nice is if you could modify a level editor to work with an expanded rom. I imagine SMB hacks could get even better if they weren't so limited on space.
hybrid
Guest
« Reply #280 on: April 12, 2008, 07:27:21 pm »

i noticed with the expanded rom theres no flags on the flag poles in the later worlds noticed on 7-1
pluss the 8-2 in the pc88 version looks diffrent from the one in the roms
frantik
Guest
« Reply #281 on: April 12, 2008, 07:46:17 pm »

nice job Karatorian Smiley

Quote
I'm interested in compiling a list of outstanding differences between the games so that we have a checklist of things that need to be done.

Ok well off the top of my head

Blocks:
Hidden blocks with power up
? blocks with starman

Power ups:
Bee
Hammer
Wings
Clock

Enemies:
Crabs
Flies
Falling spikes
Barrels
Flaming barrels
Long firebar spinning left


Quote
the 8-2 in the pc88 version looks diffrent from the one in the roms

it's not techincally possible to create that crazy castle Sad  the code should be hacked to not include the blocks at the bottom of the castles in that level though

also in 7-1 the flag disappears when you get the power up or 1up which is close to the pole.  the flag sprite is treated like a power up and only one power up is allowed on the screen


edit:  hmm i noticed i was a little over zealous with the optimization and removed the 1up from 1-2.  will have to fix that
« Last Edit: April 13, 2008, 06:37:11 am by frantik »
hybrid
Guest
« Reply #282 on: April 13, 2008, 03:25:41 pm »

i wasn't really talking about the castle
in 8-2 it starts with the castle on the island (musroom looking thing) a pitfilled with water than an L Pipe which leads to the underwater scene, and falling in the pit gets you to the wter room. every thing else is the same that i could see in that level.

frantik
Guest
« Reply #283 on: April 13, 2008, 03:47:00 pm »

the water isn't included cause in SMBS it is lower than it is possible to put it in SMB.  the L pipe is replaced with a regular pipe cause if you go in the sideways pipe entrance it will cause you to exit a pipe not fall from the top of the screen.  as for the falling in the pit and being in the water section, how do know that happens?  you've played it?  or seen it on a video?

edit:  i put the 1up back in 1-2
http://www.swiftlytilting.com/download.php?file=smbspecial_world4c.ips
« Last Edit: April 13, 2008, 04:16:07 pm by frantik »
hybrid
Guest
« Reply #284 on: April 13, 2008, 05:24:54 pm »

i acutally played it. i loose one life and start in the water section
Pages: 1 ... 17 18 [19] 20 21 ... 39  


Powered by SMF 1.1.4 | SMF © 2006-2007, Simple Machines LLC