Language…
16 users online: ageVerrly,  AmperSam, crocodileman94, CroNo, Dark Prince, Green, Green Jerry, GRIMMKIN, JezJitzu, mtheordinarygamer, RPG Hacker, Rykon-V73, Skewer, SMW Magic, W3aper, Zavok - Guests: 271 - Bots: 471
Users: 64,795 (2,373 active)
Latest user: mathew

ASM Projects show-off thread

  • Pages:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157


Some thing I cooked up minutes ago. It's the Roto Disc... Mario Forever style.







Dream team (feed them, please):






Like those new Roto discs. They remind me of Kaos Island. The hack has slow roto discs, fast falling Thwomps and some other Mario forever enemies.


Another thing of mine (kinda):







Dream team (feed them, please):






I did a small code involving lots of freeRAM:


Yes, that HDMA effect scrolls with the background.
A simple Skipsqueak sprite I'm making. Planning to use it on some levels I plan to start making to later compile into a hack.

Graphics are unfinished, wuffalo volunteered to make some for me.

3D World behavior (jumps every $6C frames):


Mario Maker 2 behavior, activated with Extra Bit (jumps when Mario jumps):


I still need to make it compatible with SA-1 and comment the code if there is interest to upload this onto the site.

Nothing impressive but anything to make this thread active.
HackPortsASM"Uploader"

Originally posted by lion
A simple Skipsqueak sprite I'm making


Very cool! It's great to have stuff from future games retrofitted into this one.
Have you thought about making a variant that would make it move forward constantly? You see Skipsqueaks on conveyor belts most of the time, so it would make sense.


Other Submissions of mine!
Originally posted by lion
A simple Skipsqueak sprite I'm making. Planning to use it on some levels I plan to start making to later compile into a hack.

Graphics are unfinished, wuffalo volunteered to make some for me.

3D World behavior (jumps every $6C frames):


Mario Maker 2 behavior, activated with Extra Bit (jumps when Mario jumps):


I still need to make it compatible with SA-1 and comment the code if there is interest to upload this onto the site.

Nothing impressive but anything to make this thread active.

Here are some GFX you wanted for your simple Skipsqueak sprite.


Figuring out how to HDMA.
Cower before the shitty censored status bar of novice-ness
HackPortsASM"Uploader"

I added a sound effect to wiiqwertyuiop's "water level blocks" that only plays if it changes the water level state.




NewPointless
wtf sonic shields in smw how



Benny Harvey RIP, miss you big man.

I should show off a couple resources which I only showed at Discord but never here in the forums.



This is a falling wall from Yoshi's Island, freshly constructed with HDMA (yes, HDMA, not bitmap drawing as you might think). Most of the code is ported from Yoshi's Island and translated to 65816 ASM.
You'll recognise this from my CLDC as that's where it was originally created.

Aside from a couple of bugs (the wall may go beyond), it's basically ready. Just use SA-1 (the calculation is a bit tricky), insert layer3wall.asm with UberASM, falling_wall.* with PIXI (trig.asm needs to be in the same folder). You need to put two of them so they don't spawn in the middle of the screen — if the extra bit is clear, the wall is on the left side, else on the right side.



This is a recreation of Mode 2 lava from Yoshi's Island. In addition for giving the lava a nice animation, it also affects the interaction which can be seen in the GIF at a closer look.
Similar to the falling wall, most of the code is from Yoshi's Island (modified for 65816 ASM) and used my CLDC entry.
lion gave me inspiration to it as he commented on my rip of 3D Stones about adding Mode 2.

No download as the interaction is a bit buggy.



A firefly from Super Metroid (as you might have guessed, I like to recreate stuff from other games). The animation isn't really difficult: You might say it's colour animation but instead, it's just colour maths. The idea is that I write to the fixed colour which means the background colour would animate with grey / white colours but instead is set to subtract the colours from, in this case, layer 2 and 3. Want tiles which aren't affected? Put them on layer 1 like in Super Metroid!

No download since the code is not finished yet (most notably, no fireball and cape interaction and no movement) and I'll probably change the darkness code. I will upload it to the sprites section once finished, though.



Back to Yoshi's Island: The timed platforms we host are sprites. You can't use too many of them at the sime time, though, unlike Yoshi's Island due to one fundamental difference: They are blocks at the latter. My version uses the same approach (yes, I looked at Yoshi's Island again). The kicker: I use only a single custom block + a sprite! I use the tile number to determine the behaviour i.e. the number of times you can hit it and which side Mario stands on the platform. In addition, I also preserve the Map16 tile number of the platform which means beyond the fact that the units of the Map16 numbers matters, you can put the platform on the Map16 table anywhere you want!

Once again, I have to finish the platform to release it on SMWC.


Edit: Fixed last image.
Wow. Those falling walls look amazing! Very nice one!
Something I have been working on for a couple days:

Yes, both the background and message box are on layer 3. The idea is that I not only write the message box depending the layer 3 position but also restore it afterwards. The code is a bit based of Yoshi's Island which also handles message boxes this way. All what's missing is the windowing and the inline layer 3 message can be released.
Originally posted by MarioFanGamer
Something I have been working on for a couple days:

Yes, both the background and message box are on layer 3. The idea is that I not only write the message box depending the layer 3 position but also restore it afterwards. The code is a bit based of Yoshi's Island which also handles message boxes this way. All what's missing is the windowing and the inline layer 3 message can be released.

Nice, does this also work for "course clear!" text ?
Originally posted by JP32
Nice, does this also work for "course clear!" text ?

Sadly not because the message box messages use a black background (which means you can hide the rest of layer 3 through windowing) but the course clear text uses a transparent background.

Still WIP, i can't say how long until i release this but i hope more people use it.

Benny Harvey RIP, miss you big man.


I've finally decided to experiment with adding parallax in depth, starting with colours (actually, it was brightness first but only for the prototype) before tackling on with backgrounds.
It works by calculating the line's position relative to the sceen's median, multiply the difference by some factor, add the median's height and boom, there is your line. That way, I can calculate the black, light and dark blue regions of the screen for the HDMA table. Priority is handled by colour maths (half colour enabled on backdrop only), subscreen with every layer enabled and careful TM HDMA (nothing below the surface, sprites and foreground immediately above the surface and where layer 2 should be above water, also that is enabled there).
Half colour doesn't work with the fixed colour which is why use two more HDMA channels to turn it black below the surface. This makes the 3D water quite expensive in terms of HDMA usage. By default, it also is incompatible with HDMA gradients but that can be solved with buffering every line of the gradient and use indirect HDMA (kind of what I did for the scrollable HDMA gradients) and change the pointer where the gradient starts or stops.
This is (presumably) the final state, at least visually. The code behind it is quite ugly (and also lacking in some customisations) so I should optimise it if I potentially release it.
Holy cow, this is an amazing effect! I was very curious where you were going with the original version of this, but having the level assets actually 'pop out' of the hdma effect sells it considerably.


Other Submissions of mine!
Originally posted by MarioFanGamer

I've finally decided to experiment with adding parallax in depth, starting with colours (actually, it was brightness first but only for the prototype) before tackling on with backgrounds.
It works by calculating the line's position relative to the sceen's median, multiply the difference by some factor, add the median's height and boom, there is your line. That way, I can calculate the black, light and dark blue regions of the screen for the HDMA table. Priority is handled by colour maths (half colour enabled on backdrop only), subscreen with every layer enabled and careful TM HDMA (nothing below the surface, sprites and foreground immediately above the surface and where layer 2 should be above water, also that is enabled there).
Half colour doesn't work with the fixed colour which is why use two more HDMA channels to turn it black below the surface. This makes the 3D water quite expensive in terms of HDMA usage. By default, it also is incompatible with HDMA gradients but that can be solved with buffering every line of the gradient and use indirect HDMA (kind of what I did for the scrollable HDMA gradients) and change the pointer where the gradient starts or stops.
This is (presumably) the final state, at least visually. The code behind it is quite ugly (and also lacking in some customisations) so I should optimise it if I potentially release it.


Looks like the positions are interpolated in between the topmost and bottommost
Give thanks to RPG hacker for working on Asar.
Anyone want to talk about the Batton M48 in "Mega Man 7" in this thread?



Where do I modify this graphics routine to make the Batton M48 look like this?
Code
;-------------------------------------------------------------------------------------
tilemap:
	db $20,$21,$22,$30,$31                 ;Close1
	db $20,$21,$22,$30,$31                 ;Close2
	db $7F,$30,$31                         ;Close3
	db $7F,$30,$31                         ;Close4
	db $06,$16,$06,$16,$26                 ;Open1
	db $06,$16,$06,$16,$26                 ;Open2
	db $0A,$0D,$1C,$1D,$0A,$1A,$1B,$1C,$1D ;Fly1
	db $23,$24,$43,$44,$45,$23,$33,$43     ;Fly2
	db $0E,$29,$2D,$2E,$0E,$2D,$2E         ;Fly3
	db $46,$48,$4A,$46,$4A                 ;Fly4
x_pos:
	db $FC,$04,$0C,$FC,$04                 ;Close1
	db $FC,$04,$0C,$FC,$04                 ;Close2
	db $04,$FC,$04                         ;Close3
	db $04,$FC,$04                         ;Close4
	db $FD,$FD,$0C,$0C,$0C                 ;Open1
	db $FD,$FD,$0C,$0C,$0C                 ;Open2
	db $F9,$09,$F9,$01,$10,$10,$08,$10,$08 ;Fly1
	db $F9,$01,$F9,$01,$09,$10,$10,$10     ;Fly2
	db $F1,$01,$F9,$01,$10,$10,$08         ;Fly3
	db $F1,$01,$F9,$10,$08                 ;Fly4
y_pos:
	db $FD,$FD,$FD,$04,$04                 ;Close1
	db $FD,$FD,$FD,$05,$05                 ;Close2
	db $FD,$05,$05                         ;Close3
	db $FD,$01,$01                         ;Close4
	db $00,$F8,$08,$00,$F8                 ;Open1
	db $FF,$07,$FF,$07,$0F                 ;Open2
	db $FE,$FE,$0E,$0E,$FE,$06,$06,$0E,$0E ;Fly1
	db $FC,$FC,$0C,$0C,$0C,$FC,$04,$0C     ;Fly2
	db $FC,$FC,$0C,$0C,$FC,$0C,$0C         ;Fly3
	db $FB,$FB,$0B,$FB,$0B                 ;Fly4
Properties:
	db $2F,$2F,$2F,$2F,$2F                 ;Close1
	db $2F,$2F,$2F,$2F,$2F                 ;Close2
	db $2F,$2F,$2F                         ;Close3
	db $2F,$2F,$2F                         ;Close4
	db $AF,$AF,$EF,$EF,$EF                 ;Open1
	db $2F,$2F,$6F,$6F,$6F                 ;Open2
	db $2F,$2F,$2F,$2F,$6F,$6F,$6F,$6F,$6F ;Fly1
	db $2F,$2F,$2F,$2F,$2F,$6F,$6F,$6F     ;Fly2
	db $2F,$2F,$2F,$2F,$6F,$6F,$6F         ;Fly3
	db $2F,$2F,$2F,$6F,$6F                 ;Fly4
Sizes:
	db $00,$00,$00,$02,$02                 ;Close1
	db $00,$00,$00,$02,$02                 ;Close2
	db $00,$02,$02                         ;Close3
	db $00,$02,$02                         ;Close4
	db $02,$02,$00,$00,$00                 ;Open1
	db $02,$02,$00,$00,$00                 ;Open2
	db $02,$00,$00,$00,$00,$00,$00,$00,$00 ;Fly1
	db $02,$02,$00,$00,$00,$00,$00,$00     ;Fly2
	db $02,$02,$00,$00,$02,$00,$00         ;Fly3
	db $02,$02,$02,$02,$02                 ;Fly4
tilemax:
	db $01,$01,$01,$03,$03,$03
tileadd:
	db $00,$02,$04,$06,$0A,$0E
;-------------------------------------------------------------------------------------
Graphics:
	%GetDrawInfo()

	LDA !15F6,x
	ORA $64
	STA $02
	
	PHX
	LDA !pose,x
	TAX
	LDA tileadd,x
	STA $03
	LDA tilemax,x
	STA $04
	TAX
-
	PHX
	TXA
	CLC
	ADC $03
	TAX

	LDA x_pos,x
	CLC
	ADC $00
	STA $0300|!Base2,y

	LDA y_pos,x
	CLC
	ADC $01
	DEC A
	STA $0301|!Base2,y

	LDA tilemap,x
	STA $0302|!Base2,y

	LDA Properties,x
	STA $0303|!Base2,y
	
	PLX
	INY #4
	DEX
	BPL -
	PLX

	LDA $04
	LDY #$02
	JSL $01B7B3|!BankB

	LDA Sizes,x			; \ タイルの大きさを8x8に
	STA $0460,x		; /
RTS
  • Pages:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157