I'm trying to expand the "nintendo presents" section since my screen name is too big to fit into the regular file. I applied the 64x64 logo patch (https://www.smwcentral.net/?p=section&a=details&id=19373) but the logo comes up as garbled when I load up the ROM.
If I go into YYCHR and set it to 4BPP I see it just fine...wondering why this might happen and how to fix it.
I would like to be able to adjust the speed of falling platforms.
I've downloaded the Grey Falling Platform v1.1 (https://www.smwcentral.net/?p=section&a=details&id=18939) and wanted some help on which values to change to alter speed, and then how to insert them into my ROM.
I have PIXI and CFG editor, I've made the list.txt file. When I apply the patch I get a whole host of errors:
grey_plat.asm:6: warning: (W1008): Missing org or freespace command. [PHB]
grey_plat.asm:22 (called from grey_plat.asm:22): error: (E5094): Macro 'SubOffScreen' wasn't found. [%SubOffScreen()]
grey_plat.asm:23 (called from grey_plat.asm:22): error: (E5088): Define 'AA' wasn't found.
grey_plat.asm:26 (called from grey_plat.asm:22): error: (E5088): Define '1540' wasn't found.
grey_plat.asm:28 (called from grey_plat.asm:22): error: (E5088): Define 'AA' wasn't found.
grey_plat.asm:33 (called from grey_plat.asm:22): error: (E5088): Define 'AA' wasn't found.
grey_plat.asm:35 (called from grey_plat.asm:22): error: (E5088): Define 'BankB' wasn't found.
grey_plat.asm:37 (called from grey_plat.asm:22): error: (E5088): Define 'BankB' wasn't found
Which I know means I to define what the variables are, but I'm not sure how exactly to change them, or what to change them to. If it wasn't already obvious I'm new to this whole thing. Sorry if the question is silly.
So I was doing that, but I'm still getting some errors.
My pixi.bat file reads:
pixi.exe -pl %1
My list.txt file reads:
Which should correspond to my first level 01.
The grey_plat.cfg and grey_plat.asm file are both in the 'sprites' folder of the PIXI folder. I keep getting the error message: "Error on line 1: Trying to insert per level sprites without the -pl flag".
So colour me puzzled!
Note: I previously attempted the global insertion route, and it seemed to 'work' in that it didn't give me an error message, but it didn't seem to have any effect on the grey platforms in the ROM.
Hmmmm. So I went back to global insertion, changed the value to 'AF' in the list.txt file, and it didn't give me any errors when I ran Pixi.exe. Seems to have worked just fine! I really appreciate the help!
Open the 8x8 Overworld Tile Selector screen. This is where you see "Super Mario World" etc (in GFX28 + 29). I've been editing this document to spell out the title of my hack, but I find myself lacking the space necessary and would like to add an exGFX into this 8x8 tile selector area so that I can have more tiles to draw upon.
Q: is this possible?
In the 8x8 overworld tile selector there is a bunch of extra space below the first four areas (LG5 to LG8 which are 'disabled'). Is there a way to enable those and to map them to a particular exGFX?
(1) I want to edit the asm so it draws the tiles from the ExGFX file being used in the SP3 slot instead of the SP4 slot. I cannot see/don't know where to look in the ASM file to change which sprite slot to draw the graphics from.
(2) The second issue is that the values at the beginning of the ASM don't seem to match the values in the GFX file supplied with the sprite - which complicates troubleshooting for a rube like me.
The code at the very beginning of the ASM reads as follows:
I thought this would correspond to the appropriate graphics tiles in the GFX file that came with the sprite, but that's not the case...(see image). In the GFX file they are $05, $0A and $06 respectively.
I was going to switch those values over to match the ones in my custom GFX file (see image) which would end up being something like:
Just to update everyone, in case the issue comes up for others, even though my pixi.bat file had -pl in it, I have to use the command prompt, navigate to the PIXI folder, and execute "pixi.exe -pl ROM.smc" manually to get the local insertion to work.
- Working on hack, been testing it just fine with BSNES
- Start working on a layer 2 level; import a ghost house background, play around with bypasses and GFX files, etc.
- Adjust the per-level sprite list
- Go to test layer 2 effect - ROM doesn't load; remains a black screen
I am not even sure where to begin troubleshooting this. If anyone has any tips please let me know.
Put the .asm and .cfgs in the shooter folder, added them to the list.txt file with C0 and C1 (I only decided to put the horizontal lr and vertical up shooters in).
I ran pixi through the command line 'pixi.exe -pl "ROM NAME".smc' like usual. Everything seemed fine. There is this little note:
Extra bytes change detected
Sprites remapped successfully.
And now the ROM has a bad checksum according to SNES9x and crashes when I try to run in an emulator (both internal/external emulator options from within LM, and if I just try to open the rom in SNES9x on it's own).
The error message is:
The ROM Crashed.
Technical Information: 879 and 967.
VERY STRANGE. I have no idea why this would happen.
EDIT: now - even if I just run pixi on the ROM with no additional added sprites, it appears the ROM gets corrupted somehow? Any ideas why this would happen?
Hi all - currently trying to remap the tile for the Falling Spike disassembly (https://www.smwcentral.net/?p=section&a=details&id=3477 but I'm not sure exactly where to modify the code, or how best to go about it. I want to be able to point the code to a different area of the GFX. I know the ROM address for the falling spike tile is $03921C, and thought that would give me a place to start but no success.
I could pretty easily just change the GFX file (in my case to paste the falling spike graphic over the Big Boo's mouth) but I thought it would be an interesting and fun learning experience.
Currently diving deep into Ersanio's assembly tutorials, but thought I would reach out for advice.
Here is the code for the disassembly for easier reference:
FALLINGSPIKE: JSL $0190B2
LDY !15EA,x ; Y = Index into sprite OAM
LABEL_ONE: LDA $9D
POINTER: dw LABEL_THREE
LABEL_THREE: STZ !AA,x ; Sprite Y Speed = 0
RTN_ONE: RTS ; Return
LDA #$B0 ; Maximum rising speed, don't go below #$80.
FREEZE_SPR: STZ !AA,x ; Sprite Y Speed = 0
RTS ; Return
Hi all - using the Grey Falling Platform disassembly I'd like to have a 2 tile wide platform instead of a 4 tile-wide platform. I'm pretty OK with the graphical component of it, but less so the hit-box component. As it stands now I have a nice 2-tile platform with 4-tiles of 'hit box'.
Can anyone provide some advice on which portion of the .asm to edit?
Current ASM included here for ease of discussion:
; Grey Falling Platform ;
print "MAIN ",pc
print "INIT ",pc
JSR Graphics ; Always Draw graphics for the sprite.
LDA $9D ;\
BNE .return ;/ If sprites are locked, return.
LDA !AA,X ;\
BEQ .checkContact ;/ If sprite is stationary, branch.
LDA.w !1540,X ;\
BNE .updateSpeed ;/ If initial fall timer is set, branch.
LDA !AA,X ;\
CMP.b #$40 ; | Wait until it gets faster and goes beyond 40 ..
BPL .updateSpeed ;/ Then branch.
ADC.b #$08 ; Increase the speed by 02 all the time (until it's above 40).
STA !AA,X ; Store Y speed.
JSL $01801A|!BankB ; Apply update with affecting position.
JSL $01B44F|!BankB ; Make the sprite "solid".
LDA !AA,X ;\
BNE .return ;/ If the Y speed is non-zero, there's no need to continue.
LDA.b #$06 ;\ originally 6
STA !AA,X ;/ Initial Y speed when stood on.
LDA.b #$0A ;\ originally 2
STA.w !1540,X ;/ Timer it takes to fall down initially when stood upon.
RTS ; Return
db $00,$10 ;db $00,$10,$20,$30
LDX #$01 ; # of tiles to go through loop and draw tiles = 03.
LDA $00 ;\
CLC ; |
ADC XDISP,x ; | Load X position and apply X displacement.
STA $0300|!Base2,y ;/ Store to sprite X position.
LDA $01 ;\01
STA $0301|!Base2,y ;/ There is no YDISP, so return.
LDA Tiles,x ;\
STA $0302|!Base2,y ;/ Draw current tile from loop.
LDA #$09 ;\ Property from .cfg
ORA $64 ; | Add in sprite property byte.
STA $0303|!Base2,y ;/ And store to sprite props.
INY #4 ; Increment Y 4 times, because OAM is 8x8.
DEX ; Decrease # of times to go through loop.
BPL .loop ; Loop until all tiles are done.
LDX $15E9|!Base2 ; Pull sprite index.
LDY #$02 ; 16x16 tiles.
LDA #$01 ; We drew 4 tiles.
JSL $01B7B3|!BankB ; Call OAM write.
RTS ; Return.
I've inserted the blocks using GPS (changed their designations to 340-347 numbered_platform.asm and 348-34B numbered_platform_small.asm) and have inserted the custom GFX in BG3. I'm just not sure how to implement the actual blocks.
When I try to put say, a small block in, I step on it and a blue koopa appears and flies off to the left of the screen.
So I've now inserted the sprite - which works as intended.
I still can't figure out the blocks though. They map a routine to draw the sprite when you step on a block. Despite having the sprite added, the same koopa spawning happens when I insert the block. Is there something I have to edit in the platform block asm?
I could 100% be missing something exceedingly obvious...
I've made a little video showing off the issue. The first platform is the sprite (the graphics are an easy fix) it works as intended. The second and subsequent platforms are the blocks - that do not work.