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 - Nalwonk

Pages: [1]
Having a new problem with it.

It seems to be mostly working now, but something in the castle victory code is causing it to break. Whenever I grab the axe, the screen mostly flips to the other nametable, with graphical errors making it look like the IRQ isn't firing on the correct frame, though it does appear to be.  I recorded a video of the issue:

Does anyone know what the problem might be?

ROM Hacking Discussion / Re: SMB1 MMC3 Conversion - Scanline IRQ problem
« on: January 07, 2021, 03:26:35 am »
Turns out the problem was I wasn't accounting for which page of the name table I was on and that was causing it to bug out.  Mario 2/Lost Levels adjusts the code for scrolling to account for that, but I wasn't understanding what the extra code in its IRQ routine was or how to implement it properly.

The disassembly of 2 is based on the FDS version so it was based on the FDS's IRQ routine and the numbers I needed to set for things were different.

I tried looking at the edited disassembly for the MMC3 conversion of 2/LL, but the code isn't commented and I'm a bit too inexperienced to know what's going on.

I'm having a new problem now where the whole screen shakes up and down when I load the game in some emulators, hopefully the link you've provided will give me enough to go on to figure that out.  It hadn't occurred to me to look on documentation for scrolling in general since the game already has a scrolling system built.

It seems like whenever I ask for help here, the problem isn't what I think it is so I don't give people enough information to actually help me.  Ooops!

January 07, 2021, 06:59:24 am - (Auto Merged - Double Posts are not allowed before 7 days.)
Seems to have been a timing issue, changing the amount of delay around has removed the earthquakes.

Hopefully, last problem I'm having in relation to this:

When Mario passes through the boundary between the scroll areas, there seems to be a dead scanline on certain emulators, but not others.  Lost Levels MMC3 doesn't have the same problem, so presumably it's something that can be dealt with.

EDIT: Turns out I'd disabled rendering at the beginning of the IRQ because I'd been testing something else, oops

ROM Hacking Discussion / Re: SMB1 MMC3 Conversion - Scanline IRQ problem
« on: January 02, 2021, 12:39:38 am »
I can't really find anything in there that would cause this to be happening.

ROM Hacking Discussion / SMB1 MMC3 Conversion - Scanline IRQ problem
« on: January 01, 2021, 08:03:42 am »
I'm in the process of converting SMB1 to MMC3 as a base for hacking it, and I'm having a bit of trouble converting the status bar from a sprite 0 hit to an MMC3 IRQ.

It seems like it's having trouble actually stopping at the scanline I've indicated, and I'm getting scrolling errors, sometimes to about halfway down the screen.  I couldn't really find any good instructions on how to set this up though, so I'm sure I'm missing a step.

I've set up the MMC3 like this:

Code: [Select]
lda #30
sta $c000
sta $c001
sta $e001
inc IRQAckFlag

My IRQ code is as follows:
Code: [Select]

sta $e000

lda HorizontalScroll
lda VerticalScroll
lda #$00
sta IRQAckFlag




ROM Hacking Discussion / SMB1 Romhack behaving differently in QuickNES
« on: November 14, 2020, 05:57:45 am »
EDIT: Disregard this, the problem is that QuickNES initializes cartRAM with FF instead of 00 and a read I'd forgotten about for another feature I was working on was skipping the header entirely.

I am working on a hack of SMB1 that ads an option menu, so that I can create challenges for an internet gameshow. As such, I need the hack to work in Bizhawk's QuickNES core.  Problem is, it's not!

I've converted the ROM to MMC3 and expanded it to allow for the menu.  And earlier version of this worked fine in QuickNES, but a recent change I made moved the level data to another bank, and to avoid having to bank switch during gameplay (mostly because it was acting funny and I couldn't figure out the problem) I move the entire level and enemy data chunks to cart ram.  This is where it seems to be having a problem.

When the routine to read the level headers runs, it seems to be losing the data somehow, and getting all zeros.  Mario starts falling from the sky auto-walking with no time, there's no floor, no background, all stuff from the level header.  In every other emulator I've tried it in, the game works as intended.

Does anyone have any idea why this would be behaving differently in QuickNES?  Is there an implementation of Libretro cores that has a working debugger so that I can see myself where it's going wrong?

ROM Hacking Discussion / Re: NES Game sprite graphics routines
« on: April 14, 2020, 04:53:37 am »
Thanks, that helped a lot.  It was in $0200, and then I just tracked the writes to that area with the tile number I was looking for.  Kept jumping to different slots which was a bit of a pain in the butt, but I got it all worked out.

ROM Hacking Discussion / NES Game sprite graphics routines
« on: April 10, 2020, 05:36:07 am »
Is there a simple trick to tracking down the graphics routines of sprites in NES games? 

I'm going to start out by admitting I'm in a little over my head here, so I'm sorry if this seems stupid.

I'm working on a hack of SMB 1.  I found a copy of SMBDIS converted to NESASM format since I'm more used to the way that assembler works from working with the SMB3 disassembly, and how bank division works with it, since part of what I'm doing is expanding it to MMC3

I've got it to assemble fine expanded, but when I try to move the sound engine over to its own bank to make room in the last bank for the switching routine, I get Overflow errors on the MusicHeaderData.  None of it should be looking outside the bank in question for anything, as far as I can tell, the information it's looking for is directly after it.
The errors I'm getting are as follows:
  921  02:A63E                  .db DeathMusHdr-MHD           ;event music
       Overflow error!
  922  02:A63F                  .db GameOverMusHdr-MHD
       Overflow error!
  923  02:A640                  .db VictoryMusHdr-MHD
       Overflow error!
  924  02:A641                  .db WinCastleMusHdr-MHD
       Overflow error!
  925  02:A642                  .db GameOverMusHdr-MHD
       Overflow error!
  926  02:A643                  .db EndOfLevelMusHdr-MHD
       Overflow error!
  927  02:A644                  .db TimeRunningOutHdr-MHD
       Overflow error!
  928  02:A645                  .db SilenceHdr-MHD
       Overflow error!
  930  02:A646                  .db GroundLevelPart1Hdr-MHD   ;area music
       Overflow error!
  931  02:A647                  .db WaterMusHdr-MHD
       Overflow error!
  932  02:A648                  .db UndergroundMusHdr-MHD
       Overflow error!
  933  02:A649                  .db CastleMusHdr-MHD
       Overflow error!
  934  02:A64A                  .db Star_CloudHdr-MHD
       Overflow error!
  935  02:A64B                  .db GroundLevelLeadInHdr-MHD
       Overflow error!
  936  02:A64C                  .db Star_CloudHdr-MHD
       Overflow error!
  937  02:A64D                  .db SilenceHdr-MHD
       Overflow error!
  939  02:A64E                  .db GroundLevelLeadInHdr-MHD  ;ground level music layout
       Overflow error!
  940  02:A64F                  .db GroundLevelPart1Hdr-MHD, GroundLevelPart1Hdr-MHD
       Overflow error!
  941  02:A650                  .db GroundLevelPart2AHdr-MHD, GroundLevelPart2BHdr-MHD, GroundLevelPart2AHdr-MHD, GroundLevelPart2CHdr-MHD
       Overflow error!
  942  02:A651                  .db GroundLevelPart2AHdr-MHD, GroundLevelPart2BHdr-MHD, GroundLevelPart2AHdr-MHD, GroundLevelPart2CHdr-MHD
       Overflow error!
  943  02:A652                  .db GroundLevelPart3AHdr-MHD, GroundLevelPart3BHdr-MHD, GroundLevelPart3AHdr-MHD, GroundLevelLeadInHdr-MHD
       Overflow error!
  944  02:A653                  .db GroundLevelPart1Hdr-MHD, GroundLevelPart1Hdr-MHD
       Overflow error!
  945  02:A654                  .db GroundLevelPart4AHdr-MHD, GroundLevelPart4BHdr-MHD, GroundLevelPart4AHdr-MHD, GroundLevelPart4CHdr-MHD
       Overflow error!
  946  02:A655                  .db GroundLevelPart4AHdr-MHD, GroundLevelPart4BHdr-MHD, GroundLevelPart4AHdr-MHD, GroundLevelPart4CHdr-MHD
       Overflow error!
  947  02:A656                  .db GroundLevelPart3AHdr-MHD, GroundLevelPart3BHdr-MHD, GroundLevelPart3AHdr-MHD, GroundLevelLeadInHdr-MHD
       Overflow error!
  958  02:A656            TimeRunningOutHdr:    .db $08, LOW(TimeRunOutMusData), HIGH(TimeRunOutMusData), $27, $18
       Internal error[1]!

I'm not entirely understanding why this is an issue when it assembled fine where it was placed before, but I'll admit, I don't really understand how all of this works yet, I have a very basic understanding, enough to make changes to labelled code, but that's about it.

ROM Hacking Discussion / In over my head with Bubble Bobble!
« on: April 10, 2018, 05:56:23 pm »
The moderator of a race group I'm in asked me to do a joke for April wherein we change the title screen of Bubble Bobble to that of 8Eyes, make people think we're racing one game when it's actually another.  I thought it would be a lot easier to do than it's turning out to be, and I put it a little too close to last minute, Oops!

I've managed to get it to the point where it actually does load everything I want visually, but I can't quite figure out how to stop the music from playing, and I haven't gotten to tackling the wavy bubbles in the background, but I can probably just set them to use a blank tile, so hopefully I've solved that for myself already.

Does anybody have any idea how Bubble Bobble's music works?  I can't for the life of me find anything like a song ID to just change to a blank to have it play nothing at the title, and the only thing I've found is the workings of the sound engine itself, I can kill all the audio, but that's not really my goal.

Pages: [1]