Just make a section with 'Technical details' in the manual. Problem solved.MrDeePay wrote:And just how will this be explained to the player who obviously will not know why the heck that's happening to begin with?
ASM: Request, help and general discussion
Re: ASM: Request, help and general discussion
- AUS
- Toni#4796
- Posts: 483
- Joined: 14 years ago
- First name: Toni
- Pronouns: they/them/their
- Location: アース
Re: ASM: Request, help and general discussion
I'd imagine the player isn't an idiot and will take notice and realize that's how the game goes. No big deal.MrDeePay wrote:And just how will this be explained to the player who obviously will not know why the heck that's happening to begin with?
"oh no my best friend was replaced by a evil demon shadow monster"
"argh i am the evil shadow monster demon shadow"
Vip is pronounced "Beep"
nostalgic realtime nitroid let's play playlist
Re: ASM: Request, help and general discussion
It's no different than the hacks that remove cape flying without an in-game explanation.
- anonymousbl00dlust
- Posts: 131
- Joined: 14 years ago
- Location: West Korea
Re: ASM: Request, help and general discussion
I'm trying to convert yoshicookiezeus's autoscroll sprite to levelasm. Unfortunately, it is way more complex than I can handle because apparently I'm retarded.
If someone wouldn't mind helping me with this I'd be super grateful. It's sort of essential that I find a way to get this done because the good majority of my level requires this to work. yeah.
If someone wouldn't mind helping me with this I'd be super grateful. It's sort of essential that I find a way to get this done because the good majority of my level requires this to work. yeah.
alex2 wrote:It's all a matter of taste.
- anonymousbl00dlust
- Posts: 131
- Joined: 14 years ago
- Location: West Korea
Re: ASM: Request, help and general discussion
I've got a layer 3 background that I need to slowly rise through a vertical level (imagine lava rising through a vertical pit). Would someone mind helping me with this?
alex2 wrote:It's all a matter of taste.
Re: ASM: Request, help and general discussion
Can you upload or otherwise get the level to me? Or if you need help with the autoscroll sprite still, post the code too.
- anonymousbl00dlust
- Posts: 131
- Joined: 14 years ago
- Location: West Korea
Re: ASM: Request, help and general discussion
I just sent you a PM. thank you SO MUCH for helping me out.kil3 wrote:Can you upload or otherwise get the level to me? Or if you need help with the autoscroll sprite still, post the code too.
alex2 wrote:It's all a matter of taste.
- anonymousbl00dlust
- Posts: 131
- Joined: 14 years ago
- Location: West Korea
Re: ASM: Request, help and general discussion
So uh, kil3 has kind of dropped of the face of the earth. If there is anyone else with advanced knowledge of asm that would be willing to help me out with some general stuff please let me know.
alex2 wrote:It's all a matter of taste.
Re: ASM: Request, help and general discussion
my bad. I didn't really have the time or resources to figure out the problem after all
- Lv27MarkerMMan
- Posts: 7
- Joined: 14 years ago
Re: ASM: Request, help and general discussion
I need help with finishing off the ASM issues with my level. If I can get past just 4 problems then finishing the level should be a piece of cake.
Spoiler is just to reduce the size of this message:
Lastly would you prefer that I send a zip file with asm in it or that I post the code in a code box if the code is long?
Spoiler is just to reduce the size of this message:
Don't be afraid to check out my Youtube channel.
I am making let's plays now!
I am making let's plays now!
Re: ASM: Request, help and general discussion
I'm very sorry to inform you that you no longer have your level.
You were just not around, and there was a demand for levels. You can ask for a place on the reserve list, but I'm not sure how likely it will be that you get a level back. Alternatively, you may try to make a switch palace level.
That's all I can offer, and, again, I'm sorry.
You were just not around, and there was a demand for levels. You can ask for a place on the reserve list, but I'm not sure how likely it will be that you get a level back. Alternatively, you may try to make a switch palace level.
That's all I can offer, and, again, I'm sorry.
- anonymousbl00dlust
- Posts: 131
- Joined: 14 years ago
- Location: West Korea
Re: ASM: Request, help and general discussion
I'm 2 major asm things away from being done with my level. If anyone with windowing or advanced layer 3 knowledge would be willing to help out I'd really appreciate it.
alex2 wrote:It's all a matter of taste.
- anonymousbl00dlust
- Posts: 131
- Joined: 14 years ago
- Location: West Korea
Re: ASM: Request, help and general discussion
so I spent like 9 hours today teaching myself windowing, and I'm 90% of the way done with 1 of those two major ASM things. Unfortunately, the last %10 is where I am now stuck
if anyone really, REALLY good at ASM wouldn't mind helping out (not coding, just explaining what final steps to take in my algorithm), I'd really appreciate it.
PM me for more info
if anyone really, REALLY good at ASM wouldn't mind helping out (not coding, just explaining what final steps to take in my algorithm), I'd really appreciate it.
PM me for more info
alex2 wrote:It's all a matter of taste.
Re: ASM: Request, help and general discussion
Me again. You absolutely sure you need windowing to accomplish what you want? If I remember the issues correctly, I have no idea how windowing would help you with that...
Re: ASM: Request, help and general discussion
Well, I checked your thread on SMWC, and I still kinda don't know what you're trying to do exactly. If you want a tidal wave type thing to chase the player, I don't know why you need windowing. Couldn't you just say use layer 3 in additive mode with tidal tiles on it? I mean, usually windowing is coupled with HDMA to do draw masking shapes on the screen which would be impossible with layer tiles.
I think some of your problems are stemming from the fact that in SMW layer 3 uses absolute screen coordinates. The answer then is to ignore the old layer 3 coord system and make your own, which is not THAT hard, compared to messing around with windowing anyway. Just find some freespace somewhere and make your own X and Y coords for layer 3, then code the layer respond to those, not the native SMW ones.
I think some of your problems are stemming from the fact that in SMW layer 3 uses absolute screen coordinates. The answer then is to ignore the old layer 3 coord system and make your own, which is not THAT hard, compared to messing around with windowing anyway. Just find some freespace somewhere and make your own X and Y coords for layer 3, then code the layer respond to those, not the native SMW ones.
- anonymousbl00dlust
- Posts: 131
- Joined: 14 years ago
- Location: West Korea
Re: ASM: Request, help and general discussion
actually I did that thing already. The system is pretty complex but it works (and yeah it uses dynamic windowing). The only things I need help with now are as follows:kil3 wrote:Well, I checked your thread on SMWC, and I still kinda don't know what you're trying to do exactly. If you want a tidal wave type thing to chase the player, I don't know why you need windowing. Couldn't you just say use layer 3 in additive mode with tidal tiles on it? I mean, usually windowing is coupled with HDMA to do draw masking shapes on the screen which would be impossible with layer tiles.
I think some of your problems are stemming from the fact that in SMW layer 3 uses absolute screen coordinates. The answer then is to ignore the old layer 3 coord system and make your own, which is not THAT hard, compared to messing around with windowing anyway. Just find some freespace somewhere and make your own X and Y coords for layer 3, then code the layer respond to those, not the native SMW ones.
- DMA hijack to get rid of the status bar tiles in my layer 3 image
NMI hack that re-uploads the palette OR help figuring out why the level loading routine changes the palette of layer 3 in one of my levelasm things
funky hitbox thing
Rewrite the code that stops mario from walking/being scrolled off the screen during autoscroll sections
Last edited by anonymousbl00dlust 11 years ago, edited 1 time in total.
alex2 wrote:It's all a matter of taste.
Re: ASM: Request, help and general discussion
I sorta understand what you're trying to do here, but I really have to think more in-dept to help here. Do you have some IPS + asm of your working copy that I can run? It usually works best for me if I just run the code and then step through it with Geiger's debugger.
P.S. Just a small note, but I've already have an NMI hijack in chest.asm to upload the level specific treasure tile into VRAM and enabling dual windowing HDMA during NMI. So if you're hacking the NMI as well, you might want to take note of this not to break the chest. The address I hijacked in chest.asm is ($0081EC).
P.S. Just a small note, but I've already have an NMI hijack in chest.asm to upload the level specific treasure tile into VRAM and enabling dual windowing HDMA during NMI. So if you're hacking the NMI as well, you might want to take note of this not to break the chest. The address I hijacked in chest.asm is ($0081EC).
Re: ASM: Request, help and general discussion
For funky hitbox, it might be easiest to put a couple of rectangular hitbox areas along the edge of whatever the thing is (and maybe define a point past the right/left of it as one big "take damage" area). If you write your own slim hit detection routine that ignores everything about interaction except whether or not there is collision, it won't be too slow. Not sure about the autoscroll... easiest solution without having to rewrite anything might be to just push him the opposite direction every frame.
- anonymousbl00dlust
- Posts: 131
- Joined: 14 years ago
- Location: West Korea
Re: ASM: Request, help and general discussion
the way that I plan to do the hitbox is actually a bit more accurate than that. I was thinking something like this:kil3 wrote:For funky hitbox, it might be easiest to put a couple of rectangular hitbox areas along the edge of whatever the thing is (and maybe define a point past the right/left of it as one big "take damage" area). If you write your own slim hit detection routine that ignores everything about interaction except whether or not there is collision, it won't be too slow. Not sure about the autoscroll... easiest solution without having to rewrite anything might be to just push him the opposite direction every frame.
Code: Select all
index := mario y pos (screen) * 2
if window1_hdma_boundaries[index] < mario x pos (screen)
goto death subroutine
someone showed me this status bar hijack, which does the job:
Code: Select all
HEADER
LOROM
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Start Status bar removal
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ORG $0081F4
NOP #3
ORG $008293
db $00
ORG $0082E8
NOP #3
ORG $008C89
NOP #955
ORG $00A2D5
NOP #3
ORG $00A5D5
NOP #3
ORG $009051
NOP #40
ORG $00985A
NOP #3
ORG $00A5A8
NOP #3
ORG $008F98
NOP #3
Last edited by anonymousbl00dlust 11 years ago, edited 1 time in total.
alex2 wrote:It's all a matter of taste.
- anonymousbl00dlust
- Posts: 131
- Joined: 14 years ago
- Location: West Korea
Re: ASM: Request, help and general discussion
right, but don't I have to hijack all of those addresses from my code? Do I just do this for every one? Also, what goes in the restoration code?Alex wrote:By using a level comparison:
Code: Select all
org !AddressToHijack JML Code org !Freespace Code: REP #$10 LDA $010B CMP !YourLevel BNE Return SEP #$10 <code> Return: SEP #$10 <restoration code>
alex2 wrote:It's all a matter of taste.
- anonymousbl00dlust
- Posts: 131
- Joined: 14 years ago
- Location: West Korea
Re: ASM: Request, help and general discussion
So me and limepie came up with a pretty awesome way to free up 95% of my reserved slots while still keeping my level attached to a2mt. However, getting it to work is going to take some massive amounts of programming. If anyone would be willing to help me trudge through this I'd really appreciate it. Feel free to send me a PM or talk on IRC.
alex2 wrote:It's all a matter of taste.
Re: ASM: Request, help and general discussion
Haha what the shit you use a BNE that branches to the code directly after it, after a BEQ for the same address you're checking and yet you can do crazy windows layer 3 change level in middle of level shit haha what.
Trouble with a capital COW.
<math>\tan{A}\sin{N}</math>
- Jesuiscontent
- Tsundere
- Posts: 852
- Joined: 12 years ago
- First name: cool old field
- Location: France
Re: ASM: Request, help and general discussion
So I'm doing some (slow) progress on the Garish level, but I'm trying to create a special shooter that will, I think, improve it a lot. I basically want a shooter that fires koopa shells, as if they were kicked by blue koopas (as in, they roll towards demo, falls off ledges, bounces on wall, the normal behaviour of a shell).
I know almost nothing about ASM coding so what I've done so far is only taking the "normal shooter" sprite code from smwcentral, made it shoot koopa shells, and change the sprite status to "kicked" but it only makes them falls straight down, and they don't even interact with layer 1 so they fall out of the screen unless you pick them before. I'd be very grateful if someone could help me here. Here's the code if it helps :
Thanks in advance. I'm using shell bros as placeholders for now but they aren't quite the same thing.
I know almost nothing about ASM coding so what I've done so far is only taking the "normal shooter" sprite code from smwcentral, made it shoot koopa shells, and change the sprite status to "kicked" but it only makes them falls straight down, and they don't even interact with layer 1 so they fall out of the screen unless you pick them before. I'd be very grateful if someone could help me here. Here's the code if it helps :
Code: Select all
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Normal Shooter, based on the Bullet Bill Shooter disassembly by mikeyk, further
;; adapted into Sprite Tool by Davros
;;
;; Description: This will generate a normal sprite.
;; Specify the actual sprite and sound that is generated below.
;;
;; NOTE: Trying to generate a sprite that doesn't exist will crash your game.
;;
;; Uses first extra bit: NO
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SPRITE_TO_GEN = $DA
SOUND_TO_GEN = $09
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; sprite code JSL
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
dcb "INIT"
dcb "MAIN"
PHB
PHK
PLB
JSR SPRITE_CODE_START
PLB
RTL
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; main bullet bill shooter code
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SPRITE_CODE_START LDA $17AB,x ; \ return if it's not time to generate
BNE RETURN ; /
LDA #$60 ; \ set time till next generation = 60
STA $17AB,x ; /
LDA $178B,x ; \ don't generate if off screen vertically
CMP $1C ; |
LDA $1793,x ; |
SBC $1D ; |
BNE RETURN ; /
LDA $179B,x ; \ don't generate if off screen horizontally
CMP $1A ; |
LDA $17A3,x ; |
SBC $1B ; |
BNE RETURN ; /
LDA $179B,x ; \ ?? something else related to x position of generator??
SEC ; |
SBC $1A ; |
CLC ; |
ADC #$10 ; |
CMP #$10 ; |
BCC RETURN ; /
LDA $94 ; \ don't fire if mario is next to generator
SBC $179B,x ; |
CLC ; |
ADC #$11 ; |
CMP #$22 ; |
BCC RETURN ; /
JSL $02A9DE ; \ get an index to an unused sprite slot, return if all slots full
BMI RETURN ; / after: Y has index of sprite being generated
GENERATE_SPRITE LDA #SOUND_TO_GEN ; \ play sound effect
STA $1DFC ; /
LDA #$0A ; \ set sprite status for new sprite
STA $14C8,y ; /
LDA #SPRITE_TO_GEN ; \ set sprite number for new sprite
STA $009E,y ; /
LDA $179B,x ; \ set x position for new sprite
STA $00E4,y ; |
LDA $17A3,x ; |
STA $14E0,y ; /
LDA $178B,x ; \ set y position for new sprite
SEC ; | (y position of generator - 1)
SBC #$01 ; |
STA $00D8,y ; |
LDA $1793,x ; |
SBC #$00 ; |
STA $14D4,y ; /
PHX ; \ before: X must have index of sprite being generated
TYX ; | routine clears *all* old sprite values...
JSL $07F7D2 ; | ...and loads in new values for the 6 main sprite tables
PLX ; /
JSR SUB_SMOKE ; display smoke graphic
RETURN RTS ; return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; display smoke effect for bullet bill shooter
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SUB_SMOKE LDY #$03 ; \ find a free slot to display effect
FINDFREE LDA $17C0,y ; |
BEQ FOUNDONE ; |
DEY ; |
BPL FINDFREE ; |
RTS ; / return if no slots open
X_OFFSET dcb $F4,$0C
FOUNDONE LDA #$01 ; \ set effect graphic to smoke graphic
STA $17C0,y ; /
LDA $178B,x ; \ smoke y position = generator y position
STA $17C4,y ; /
LDA #$1B ; \ set time to show smoke
STA $17CC,y ; /
LDA $179B,x ; \ load generator x position and store it for later
PHA ; /
LDA $94 ; \ determine which side of the generator mario is on
CMP $179B,x ; |
LDA $95 ; |
SBC $17A3,x ; |
LDX #$00 ; |
BCC NO_INX ; |
INX ; /
NO_INX PLA ; \ set smoke x position from generator position
CLC ; |
ADC X_OFFSET,x ; |
STA $17C8,y ; /
LDX $15E9
RTS
- swirlybomb
- a bomb that is swirly
- Posts: 65
- Joined: 12 years ago
- First name: Swirlus Bomberton
- Location: The Canadas
Re: ASM: Request, help and general discussion
I think this is the right place to put this?
So I finally have spare time to finish the intro level now, and what I need is for the enemies in the second area to die on contact. It'd be super-nice if jumping on them still had a normal effect and only touching them from the side or below (which would normally cause damage) killed them instantly, but since I have no knowledge whatsoever about programming and junk, I don't know how possible that is. It'd also be great if a goal tape could be put between the goal bars at the end that would also be knocked away when hit, but if that's not doable then I can just remove the goal bar instead. So... however this could be done, I'd appreciate someone's help in doing so.
Also, I'd like for the HUD to not exist for the whole intro; I think that might be possible within Lunar Magic, but I'm not really sure how, if so?
So I finally have spare time to finish the intro level now, and what I need is for the enemies in the second area to die on contact. It'd be super-nice if jumping on them still had a normal effect and only touching them from the side or below (which would normally cause damage) killed them instantly, but since I have no knowledge whatsoever about programming and junk, I don't know how possible that is. It'd also be great if a goal tape could be put between the goal bars at the end that would also be knocked away when hit, but if that's not doable then I can just remove the goal bar instead. So... however this could be done, I'd appreciate someone's help in doing so.
Also, I'd like for the HUD to not exist for the whole intro; I think that might be possible within Lunar Magic, but I'm not really sure how, if so?
anonymousbl00dlust wrote:All the obstacles in my level can be beaten on the players first attempt without any 'future predicting'.
Re: ASM: Request, help and general discussion
Swirlybomb: I haven't looked at your IPS yet, but very good of you to work on it!
I might be able to make the asm for you, but then the (sub)level will also take effect under that. I hope that is not a problem, but I dunno if that level is also used just like Groovy in SMW. Basically, it should be possible with some levelASM to overrule the hitbox detection and change the sprite state to killed before it hurts Mario.
Or otherwise set the invincibility flag, but without the graphical effects. I'll look into it this weekend. Then again, using the latter method makes the enemies die in a distinct manner; I think dustclouds would be better here.
I might be able to make the asm for you, but then the (sub)level will also take effect under that. I hope that is not a problem, but I dunno if that level is also used just like Groovy in SMW. Basically, it should be possible with some levelASM to overrule the hitbox detection and change the sprite state to killed before it hurts Mario.
Or otherwise set the invincibility flag, but without the graphical effects. I'll look into it this weekend. Then again, using the latter method makes the enemies die in a distinct manner; I think dustclouds would be better here.