News:

Don't forget to visit the main site! There's lots of helpful docs, patches, and more!

Main Menu

Project Base 0.7.3 release

Started by begrimed, August 31, 2009, 06:03:10 AM

Previous topic - Next topic

ShadowOne333

#750
Is there an actual limit as to how many sprites using this method can be used on the screen at once?
Because so far Scyzer's map item circles can show around 32 of the normal circle/dot sprites, and also the usual Map/Save/Missile/Samus icons as well in the Brinstar map.

I even went ahead and made a quick test in-game.
In the following image, the two left images are in-game using Scyzer's map item circles code, palette and all (just changing the circle/dot sprites for my custom ones for doors based on Zero Mission), and the right ones are how they would look like if perfectly implemented:


[spoiler=Door mockups]
                  In-game                  /                   Mockup

[/spoiler]

It might be interesting to pull this off somehow.

CHECK THE END OF THE POST!

---------------------------------------------------------------------------------

Out of that, I have finished the whole changes to the Item Circles code made by Scyzer and posted by PHOSPHOTiDYL.
I have successfully moved the icons around to match their actual location in-game, and also commented out the 4 additional Missile Tanks that were added on PB 0.7.3, since my hack doesn't use those extra ones.

Here's how it looks like in-game:


You might have noticed that the circles have some inner color in them, and that's because the colour from the actual map tile with dots passes through. Only way I can think about doing this is by setting a solid color in the middle of the circle, but it has to be either blue or pink, and given how the map can show the item dots in both blue and pink backgrounds, I can't find a good workaround for it yet.
I can also go the other way around, and remove the dot-tiles from the map, but that would mean that the dots won't appear in the corner minimap. So I'm at a crossroad here.

If someone has any suggestions about this, please let me know!

With that said, here's the modified code I used for Map Item Circles (to work alongside the Map patch by DC):

Code (MapItemCircles.asm) Select
LoRom

org $82C3B4 : DW $20B7 ; Circle sprite
org $82C3BB : DW $20AA ; Dot sprite
org $82B8AA : JSR CheckItemIcons
org $82F760

EndItems: PLA : PLY : PLX
   LDA $0000,X : RTS

CheckItemIcons: PHX : PHY
   LDA $079F : ASL A : TAX : LDA ItemAreaTable,X : TAX : PHX
-   LDA $0000,X : BMI EndItems
         LDA $0002,X : AND #$00FF : STA $04 : ASL #3 : SEC : SBC $B1 : STA $00
         LDA $0003,X : AND #$00FF : STA $06 : ASL #3 : SEC : SBC $B3 : STA $02
            STX $0A
               LDA $04 : AND #$0020 : ASL #2 : STA $08
               LDA $04 : AND #$001F : LSR #3 : CLC : ADC $08 : STA $08
               LDA $06 : ASL #2 : CLC : ADC $08 : TAY
               LDA $04 : AND #$0007 : TAX
               SEP #$20 : LDA $07F7,Y : AND MapBitTable,X : REP #$20 : BNE +
                  LDA $0789 : BEQ +++ : LDA $079F : XBA : STY $08 : CLC : ADC $08 : TAY
                  SEP #$20 : LDA $9727,Y : AND MapBitTable,X : REP #$20 : BEQ +++
         +   LDX $0A
      LDA #$0E00 : STA $03
      LDA $0000,X : PHX : JSL $80818E
         LDA $7ED870,X : PLX : BIT $05E7 : BEQ +
            LDA #$000D : BRA ++
         +   LDA #$000C
      ++   LDY $02 : LDX $00 : JSL $81891F
+++   PLX : INX #4 : PHX : JMP -

MapBitTable: DB $80,$40,$20,$10,$08,$04,$02,$01

ItemAreaTable: DW CrateriaItems,BrinstarItems,NorfairItems,WreckedShipItems,MaridiaItems,TourianItems,CeresItems,DebugItems

CrateriaItems: ; TOTALITEM=14
   DW $0000 : DB $21,$02 ; Power Bomb 5 - Top-right of landing site
   DW $0001 : DB $26,$06 ; Missile 5 - Under watery area of Crateria
   DW $0002 : DB $27,$01 ; Missile 10 - Top of Wrecked Ship entrance
   DW $0003 : DB $26,$03 ; Missile 15 - Aligned with Wrecked Ship
   DW $0004 : DB $24,$05 ; Missile 20 - Water room right of LS
   DW $0005 : DB $11,$03 ; Energy Tank 1 - Energy Tank hall above LS
   DW $0006 : DB $14,$13 ; Missile 25 - Under old MB tank
   DW $0007 : DB $19,$07 ; Bomb - Chozo Guardian
   DW $0008 : DB $0C,$07 ; Energy Tank 2 - Road to Brinstar
   DW $0009 : DB $0B,$04 ; Missile 30 - Dual missile room
   DW $000A : DB $0B,$04 ; Missile 35 - Dual missile room
   DW $000B : DB $18,$0A ; Super Missile 5 - Hall right to shaft to B
   DW $000C : DB $10,$08 ; Missile 40 - Under save room
   ;DW $00FC : DB $18,$08 ; Missile 45 - MISSILE REFILL STATION
   DW $FFFF

BrinstarItems: ; TOTALITEM=32
   DW $000D : DB $0C,$08 ; Power Bomb 10 - Right of Wall jump shaft
   DW $000E : DB $18,$0A ; Super Missile 10 - Spore boss item
   DW $000F : DB $0B,$05 ; Missile 50 - Run room with closing doors
   DW $0010 : DB $0A,$04 ; Super Missile 15 - Above run room
   DW $0011 : DB $0D,$05 ; Reserve Tank 1 - Right of run room
   DW $0012 : DB $0E,$05 ; Missile 55- Dual missiles right of run room
   DW $0013 : DB $0E,$05 ; Missile 60- Dual missiles right of run room
   DW $0015 : DB $11,$08 ; Missile 65- Middle of open central section
   DW $0016 : DB $11,$0B ; Missile 70- Above Charge Beam room
   DW $0017 : DB $11,$0C ; Charge Beam- Below central section
   DW $0018 : DB $0F,$09 ; Power Bomb 15- Left of central section
   DW $0019 : DB $16,$0C ; Missile 75- Right of green zigzag room
   DW $001A : DB $19,$0B ; Morph Ball- Self explanatory
   DW $001B : DB $17,$0B ; Power Bomb 20- Left of Morph Ball room
   DW $001C : DB $20,$0B ; Missile 80- Hallway right of Morph ball
   DW $001D : DB $1F,$0B ; Energy Tank 3- Eye room (same as above)
   DW $001E : DB $06,$0B ; Energy Tank 4- Room with fake floor
   DW $001F : DB $05,$0B ; Super Missile 20- Left of fake floor room
   DW $0021 : DB $08,$0E ; Energy Tank 5- Bottom-left of Brinstar
   DW $0022 : DB $1C,$0C ; Missile 85- First missile after Morph Ball
   DW $0023 : DB $15,$09 ; Energy Tank 6- Square room with blue gate (right of central section)
   DW $0024 : DB $1D,$09 ; Missile 90- 2nd dual missiles above eye room
   DW $0025 : DB $1D,$09 ; Missile 95- 2nd dual missiles above eye room
   DW $0026 : DB $17,$10 ; X-Ray Visor- Self explanatory (Bottom Brinstar)
   DW $0027 : DB $23,$09 ; Power Bomb 25- Left of right entrance to C
   DW $0028 : DB $23,$0C ; Power Bomb 30- Bottom left of right entrance to Crateria
   DW $0029 : DB $22,$0C ; Missile 100- Left from above item
   DW $002A : DB $26,$12 ; Spazer- Above entrance to Maridia
   DW $002B : DB $2B,$14 ; Energy Tank 7- Below right entrance to Maridia
   DW $002C : DB $2F,$13 ; Missile 105- Near boss entrance
   DW $0030 : DB $39,$14 ; Varia Suit- After Kraid
   ; DW $00FF : DB $05,$05 ; Missile 110 - MISSILE STATION
   DW $FFFF

NorfairItems: ; TOTALITEM=30
   DW $0031 : DB $10,$05 ; Missile 115- Right of entrance, under the lava
   DW $0032 : DB $05,$03 ; Ice Beam- Left of entrance
   DW $0033 : DB $02,$05 ; Missile 120- Room with breaking blocks (far left)
   DW $0034 : DB $13,$0B ; Missile 125- ENERGY TANK in Crocomire room
   DW $0035 : DB $07,$07 ; Hi-Jump Boots- Self-Explanatory
   DW $0036 : DB $0B,$07 ; Missile 130- Room with Super Missile gate
   DW $0037 : DB $08,$06 ; Missile 135- Room before HiJump
   DW $0038 : DB $09,$06 ; Energy Tank 8- Room before HiJump
   DW $0039 : DB $09,$0B ; Energy Tank 9- POWER BOMB after Crocomire (Red door)
   DW $003A : DB $0E,$10 ; Missile 140- Right hall after Crocomire
   DW $003B : DB $08,$10 ; Power Bomb 35- MISSILE before Grapple beam
   DW $003C : DB $03,$11 ; Grapple Beam- Bottom-left
   DW $003D : DB $12,$03 ; Reserve Tank 2- Dual item room, middle top
   DW $003E : DB $12,$03 ; Missile 145- Dual item room, middle top
   DW $003F : DB $15,$03 ; Missile 150- Room right of dual item room
   DW $0040 : DB $17,$06 ; Missile 155- Under tall green room before Booster
   DW $0041 : DB $24,$03 ; Missile 160- Before Speed Booster entrance
   DW $0042 : DB $25,$03 ; Speed Booster- Top-right
   DW $0043 : DB $1A,$05 ; Missile 165- Tall room with moving platforms
   DW $0044 : DB $1D,$05 ; Wave Beam- Right of room with mov/platforms
   DW $0046 : DB $12,$10 ; Missile 170- Golden Torizo room
   DW $0047 : DB $13,$10 ; Super Missile 25- Golden Torizo room
   DW $0049 : DB $1C,$0B ; Missile 175- Lower Norfair, room with big jumpers
   DW $004A : DB $23,$06 ; Missile 180- Middle right, lower norfair
   DW $004B : DB $25,$07 ; Power Bomb 40- Middle right, lower norfair
   DW $004C : DB $20,$0F ; Power Bomb 45- Before Ridley, Power Bomb statue
   DW $004D : DB $1D,$06 ; Missile 185- Under Wave beam room
   DW $004E : DB $16,$12 ; Energy Tank 10- After Ridley
   DW $004F : DB $14,$11 ; Screw Attack- After Golden Torizo
   DW $0050 : DB $25,$0C ; Energy Tank 11- Above Save Room far right
   DW $FFFF

WreckedShipItems: ; TOTALITEM=9
   DW $0080 : DB $0C,$11 ; Missile 190 - Left under Save room
   DW $0081 : DB $0F,$0C ; Reserve Tank 3- Above Chozo room to Gravity
   DW $0082 : DB $0D,$0E ; Missile 195 - Under Chozo room to Gravity
   DW $0083 : DB $15,$0B ; Missile 200 - Top-right hallway
   DW $0084 : DB $12,$0E ; Energy Tank 12 - Near right exit of WS
   DW $0085 : DB $0F,$12 ; Super Missile 30 - Bottom left single room
   DW $0086 : DB $15,$12 ; Super Missile 35 - Bottom right hallway
   DW $0087 : DB $0A,$0E ; Gravity Suit -
   ; DW $00FE : DB $0C,$12 ; Missile 205 - MISSILE STATION
   DW $FFFF

MaridiaItems: ; TOTALITEM=19
   DW $0088 : DB $0A,$0D ; Missile 210- Left main section
   DW $0089 : DB $0B,$0C ; Super Missile 40- Left main section
   DW $008A : DB $12,$0D ; Energy Tank 13- Room with turtle
   DW $008B : DB $13,$0E ; Missile 215- Room with turtle
   DW $008C : DB $0C,$07 ; Super Missile 45- Dual missile room
   DW $008D : DB $0C,$07 ; Missile 220- Dual missile room
   DW $008E : DB $14,$07 ; Missile 225- Left of Super missile shaft
   DW $008F : DB $1C,$03 ; Plasma Beam- Self-explanatory
   DW $0090 : DB $14,$0F ; Missile 230- Dual item room (left)
   DW $0091 : DB $15,$10 ; Reserve Tank 4- Dual item room (left)
   DW $0092 : DB $17,$0F ; Missile 235- Dual item room (right)
   DW $0093 : DB $18,$10 ; Power Bomb 50- Dual item room (right)
   DW $0094 : DB $18,$0A ; Missile 240- Room with boost required
   DW $0095 : DB $19,$0A ; Super Missile 50- Room with boost required
   DW $0096 : DB $21,$11 ; Spring Ball- Bottom right
   DW $0097 : DB $2A,$08 ; Missile 245- Before Draygon (far right)
   DW $0098 : DB $1D,$09 ; Energy Tank 14-
   DW $009A : DB $26,$0B ; Space Jump- After Draygon
   ;DW $00FD : DB $17,$12 ; Missile 250- MISSILE STATION
   DW $FFFF

TourianItems:
   DW $FFFF

CeresItems:
   DW $FFFF

DebugItems:
   DW $FFFF


The table at the end is the X/Y positions of the sprites on the map.
One more thing worth noting in this code, is that I had to change the sprite/tile ID for the circle and dot from 86/87 to B7/AA.

Why?
Well, because DC's Map patch modifies some of the sprites in 0x1B2XXX, but also, the map that shows up at the File Select screen grabs the data from 0x1C6XXX instead of 0x1B2XXX.
The 0x1B2XXX bank is used for the in-game Pause map, while the 0x1C6XXX bank is used for the File Select map.
Oh and 0x0D3XXX is used for the minimap on the corner. So all that shares assets and they HAVE to match in their tile ID position so that the game doesn't load different sprites in any of those 3 parts, ensuring they load the same sprite properly.

-------------------------------------------------------------------------------------------------------------------------------

EDIT:
Well, would you like at this :P



It is possible! (Don't mind the tile next to the Save Room, I simply selected the wrong tile ID, that's why it shows up like that lol).
I'm right now going over the tiles themselves and seeing which ones I'm missing, then I might be able to cobble up a patch for this, combining both DC's and Scyzer's patches to make a map in the style of the GBA Metroids.


ShadowOne333

#752
Success!



Here are the rest of the maps with all their proper doors and secrets implemented properly:
https://imgur.com/a/lcnu8aY

[spoiler=All Maps with proper coloured doors, boss rooms, item circles/dots]
CRATERIA:


BRINSTAR:


NORFAIR:


MARIDIA:


WRECKED SHIP:


TOURIAN:

[/spoiler]

Even Ceres has a proper map as well, but since you can't Pause the game on Ceres Station, you can't see it. lol

I had to do some intuitive work to make this fully compatible between the minimap and the Pause map.
So all in all, the only drawbacks with this hack I did are:

  • Mini/corner map won't show doors.
    They will all appear as open transitions. This is caused because the minimap is only 2bpp, which only works with 3 colours and one for transparency. Pause screen map will show them properly due to having 16 colours to work with, so I could easily implement much more into the Pause map
  • Mini/corner map won't show circles, only dots. The minimap and Pause map share assets, but I removed the dots from the tiles in the Pause screen map, and only kept the dots in the minimap. This is because Scyzer's implementation only affects the Pause map, drawing the circles/dots as sprites on the map. The Pause screen map will show them properly. I did this so that the minimap can show (or hint) if an item is present in the room, but you won't know if its collected until you check the Pause screen.

Oh and beside that, the Pause map DOESN'T have any dot tiles in it, so that Scyzer's implementation of the item circles/dots doesn't overlap with the dots form the tiles. But the minimap one DOES have the dots in them. See what I did there? :P

Gotta say though, even despite those two drawbacks, I can live with them.
The minimap only shows your neighbor rooms, and with the dot showing up in the minimap, you can get a clear indication on whether or not there's an item. If you want to know which ones you've collected, the Pause map will be the one to go, as it's the one that gives you the most detailed information.

I'm pretty happy with how this turned out :)

Oh and of course, here's the patch for download at the end of the post :D
I wanted to do this hack so that Project Base can have this feature included as well. It's a neat little thing to have for those that have always found Super Metroid's map lacking.

Enjoy!

nodever2

This is really nice, ShadowOne.
Did you end up making separate map tiles for the doors or did you end up hacking Scyzer's patch to also show colored doors via sprites?
Need help? Just ask.
My Hacks | My Resources

ShadowOne333

Quote from: nodever2 on February 18, 2020, 11:54:56 AM
This is really nice, ShadowOne.
Did you end up making separate map tiles for the doors or did you end up hacking Scyzer's patch to also show colored doors via sprites?
They are handled as separate map tiles.
I decided to go the "easy" way about it, instead of screwing around with ASM.
I know a little ASM, but my skills at coding with it are not really good, so that would have taken me months to make.

croissant bug

#755
I've found an issue with project base. If the classic booster patch is applied to 0.7.3, you will instantly die when doing a diagonal shinespark.

croissant bug

#756
Quote from: ShadowOne333 on February 18, 2020, 11:29:20 AM
Success!

Oh and of course, here's the patch for download at the end of the post :D
I wanted to do this hack so that Project Base can have this feature included as well. It's a neat little thing to have for those that have always found Super Metroid's map lacking.

Enjoy!

The patch messes up inventory text.

Quote58

#757
Hey everyone. Trailer up for the new project base.

https://www.youtube.com/watch?v=QHk2LJHSci4


Steel Sparkle

I don't see how this could get any better.


MetroidPlayer

I've never been so hyped for an update before!

ocesse

It will be our Christmas present.
Thanks, Project Base development team.

Quote58

Happy New Years everyone! Project Base version 0.8 is available now!
http://begrimed.com/pb/

Steel Sparkle


WompaStompa

Haven't played 0.8 yet, but in 0.7.3 I found a way to crash.
1. Use Spacetime beam.
2. Save and reset.
3. Go through Ceres.
4. When you land on Zebes, there will be no sound. Going through any door will crash.
It's nothing serious, all you have to do to avoid it is to reset after Ceres. Just thought I'd bring it up in case this was an unknown phenomenon.

TheAnonymousUser

Quote from: WompaStompa on January 02, 2021, 06:50:54 PM
Haven't played 0.8 yet, but in 0.7.3 I found a way to crash...
*execute spacetime*
... 4. When you land on Zebes, there will be no sound. Going through any door will crash.
It's nothing serious, all you have to do to avoid it is to reset after Ceres. Just thought I'd bring it up in case this was an unknown phenomenon.
This is a 0.7.3 thing. 0.8's redone menu doesn't allow splasma (I think)

Tomtroid

Quote from: Quote58 on January 01, 2021, 01:38:38 AM
Happy New Years everyone! Project Base version 0.8 is available now!
http://begrimed.com/pb/

I played 0.8 and enjoyed every bit of it. If only 0.8 can replace the outdated 0.7.3 on the main site.

Pethronos

#768
I've noticed some issues in Vanilla's mini map display (save stations and elevators). Also, there are times shoots don't open doors. I hope it is solved soon. Moreover, I think if there are respected things like the fire rate, the items fanfare -at least first of each item- is something that souldn't be missed either. Same for elevator speed. Just simple suggestions btw.

THANKS for this wonderful New Year's Present!! ;D

WompaStompa

Quote from: TheAnonymousUser on January 02, 2021, 07:26:02 PM
0.8's redone menu doesn't allow splasma (I think)

A darn shame. Guess I'll stick with 0.7.3 and the normal game.

Quote58

Quote from: Pethronos on January 03, 2021, 09:15:06 AM
I've noticed some issues in Vanilla's mini map display (save stations and elevators). Also, there are times shoots don't open doors. I hope it is solved soon. Moreover, I think if there are respected things like the fire rate, the items fanfare -at least first of each item- is something that souldn't be missed either. Same for elevator speed. Just simple suggestions btw.

THANKS for this wonderful New Year's Present!! ;D

You know that you can turn on the item fanfare in the menu right? It's under SFX

As for the map tiles, that's something that will be explained whenever the thread gets updated to explain 0.8. Basically the 'Vanilla' version only adds the data needed by the main engine changes, compiles the code onto it, and does nothing else. This means that things like map data, which need to be updated because the tile gfx data has been moved around a little bit, will not look quite right in the vanilla game by default. The other thing you will notice is that certain FX don't move anymore. This is because project base makes use of a change to how FX's move, and the default value now leaves it static.
I could add those little edits to the vanilla version, but it sort of goes against the idea of having a version that is the vanilla data, just with the code over top. It'll be easier to work with when the source code is released regardless.

Pethronos

Oops!! That menu is amazing!! Thanks for the info :D

samsamcmoi

#772
Hi, great update ! I like the new possibilities available on the menu.

Is it possible to add "control freak" to the menu ?
There is a thread about this to add the patch to the project base : https://forum.metroidconstruction.com/index.php/topic,4115.0.html

Thanks !

Edit :
I play the vanilla version with snes9x 1.60 x64 version, and after a whole testing, i discovered lots of small improvements, like instant exploding bomb even on the air, or auto morph, or skip intro when press start, amazing !
The new code for the speed up doors is very fast, respect.
The new menu options is very usefull, love it too !

I found some bugs, the first is stuck door bug, it happens when you pass a door and immediately back. screenshot :



the problem is when it happens with a grey door :



another bug, with some tiles, don't know why :








aquamosquito

Hello, I saw the trailer for the 0.8 release and all the little options in the menu look really appealing. I want to know if this can be used with the improvements from Super Metroid Redux, like the improved map, control hack, Tourian unlocked, widened X-ray visor, recharge stations, and autorun, forgive me if any of these are already implemented.

MetroidPlayer

Quote from: ShadowOne333 on February 18, 2020, 11:29:20 AM
Oh and of course, here's the patch for download at the end of the post :D
I wanted to do this hack so that Project Base can have this feature included as well. It's a neat little thing to have for those that have always found Super Metroid's map lacking.

Enjoy!

Umm, yeah, about that...

The patch is incompatible with 0.8 (haven't tried 0.8.1 yet), so I applied it to 0.7.3.
Right away on Ceres, there were a few wrong tiles, and same thing with Crateria and Brinstar (I don't know about the other areas, but I would assume it's the same problem...)

Also, when I tried to enter Bomb Torizo for the first time...

[spoiler=ruined my experience][/spoiler]