I discussed this a bit on Discord, but the idea really is growing on me, although I don't know much ASM. I was able to kickstart my porting skills with a bit of training, so why not this. Just wondering whether it's worth the effort? If it is too hard for a beginner, maybe your answers will give me some substance to make the proper Asar request.
So, my goal here would be to : Successfully remove any vanilla instance of P-Switch interaction with brown "used" blocks vs. coins, and remove the "?".
And then make a patch that does exactly this.
Hey, that makes the P-Switch useless, you say? It also messes up with the invisible "?" blocks?
That's why, the goal is to combine this new patch with the SMB3 brick by S.L.. It offers the possibility to convert custom SMB3 coin blocks to custom SMB3 brick blocks and whatnot. A nice addition to the "patch" will be the "make some SMB3 Bricks appear on P-Switch". I didn't see if it's already included in the block by S.L.
In an advanced manner, we could also make it so the "standard" coin object points already to the custom SMB3 coin and the standard "turn block" object points already to the SMB3 Brick (also in LM), but that another stretch I don't really need to make.
Anyways, to get started I just scanned very quick the all.log document about Super Mario World. I've found some related mentions :
;If block isn't "Brown block", branch to $EE7F (?)
Very thin clues right now, and what surprises me is I didn't find the routine that does the reverse conversion (turning brown blocks into coins upon P-Switch), so I'll just assume it manages it all at once.
Did you already consider this kind of tweak? How do you assess the difficulty of the program? Thanks for your attention.
Well I guess my rank was well deserved after all. Thanks for the advice and recommendations. I had a blast designing the cat-Mario part of the level and I'm glad that it is what stood out in the end. I still have a lot to learn on how to introduce concepts and use setups consistently.
Tomorrow, I'll play again the levels and read the comments, it's always an interesting experience.
I remember hating on some levels and predicting they're gotta have a lower score than mine... I'd need to review that again and check how it worked out. Anyways the pre-judging topics by S.N.N and idol will help remembering.
Thanks a bunch to the organisation and congratulations to the nominees.
There were times I was infuriated about the popular choice, when my favourite songs lost a battle. Actually I don't remember it all.
For example the multiple battles won by Nightwish were pretty good battles and I'd always give a chance to the challenger, although I love Nightwish.
Pretty sad my entries didn't make it through, at least you guys chose the Causa Sui song for quite a while. I love this song very much.
I was surprised about some tastes, there were some popular songs I instantly disliked, some fair battles with niche stuff. Hell, there even was some breakcore featured! But I didn't like it actually haha.
For what it's worth, I collected all the tracks in a youtube playlist, in case you want to think about all the good moments on SMWC.
I've been not-so-satisfied lately with the way the databse lists are made available to the users. Maybe it's just my psychorigid mind but I feel like there are missing filter fields and sorting options.
I know it's been the way it is for ages but I would have liked to raise the opportunity nevertheless.
Some examples :
- cannot sort by tag (like, the 1st tag could be relevant for a sorting)
- tag lists only available upon submission or accurate forum topic, but not in the filter thingy
- cannot add multi-criteria sorting features
- irrelevant or obsolete data
- not being able to keep personal lists for later use
- more features in filter than in sorting, which could be used just the same
- data fields in the tables that cannot be used for sorting, just static info
To illustrate I'll take the sprite section : when I sort it by number of downloads, it makes the "laser suit" from 2011, first place. It's one of the oldest sprites available so of course the ddl ratio would be high. But I bet it's not been used lately, I didn't see it in most hacks I've played. A more accurate approach would be to add a customisable upload date filter which automatically puts the entries from, say, before 2015, down the list.
Fortunately we also have the ratings to find out which assets work and which do not. I kind of use it, too. But the amount of 5 stars ratings is so very high it can just help which asset can be trusted or not, but not what which asset is exactly.
I've felt like some "origin game" tags would have been missing too, like the different sprites from Kirby's dream land or Super Mario Land not mentioning the game's name before we reach the description part of it, so if you don't know the sprite's name in the first place, you'll take a real close look.
Also no field to input file's name, and author's names not always being in the relevant asm or mml files. This has been especially annoying when I re-started my SMW hacking venture after a hiatus, with my old zip files, and din't know anymore which was what, and could not properly work on my credit's list.
I know it must be a minor user issue, but I'd have appreciated to find more modern feature for this kind of thing. And if not possible, maybe a csv file would also work just fine. Since what we have ultimately is a collection of download links, hosted on SMWC, a csv file that's updated automatically, with all the available info from db, would not be too big of a stretch.
Given the number of resources and users who designed them, it could be hard work to fill in the field. But adding the field to the database should not be too figety, should it?
Having worked with simple mySQL stuff, I know some re-design can be done in database, some other not. Adding a new field referencing multiple items of the same databse is one of the possible things, as I think.
The work to get the field filled and accurate would then require to let the moderators do it (given they have knowledge of everything they've moderated), or use the userbase to let them update their things, which is also long. Even the user who tried two ressources together could submit an incompatibility issue in a comment and have it validated and added to the entry.
For now I just plan on doing the perfect baserom before starting the level design, so I'm organising in advance all the resources I want to exploit. It's a long work of documentation, that + testing and numbering resources.
I divided my work flow into different roms, one for testing graphics, one other for vanilla setups, one other for asm compatibility testing (patches, blocks, sprites).
I try to keep the pace although I'm a grown-up doing serious dayjob... But honest, sometimes it's too demanding. I need way more time in a row to get to my goals.
I keep a vision of what I want done : a game I enjoy playing, and a game with themes or resources I don't often see elsewhere.
Generally I feel like a significant number of custom resources are left out, maybe out of simplicity or lack of curiosity. I'd like seeing more SMW and SMB3 sprite tweaks and variations.
I also like seeing themes that were not covered bazillion times, when a romhack just has grasslands, ice world, desert world and cave world I don't like it so much. I feel like the themes of town, mecha, water, cloud, mountain, jungle, have not been done so much.
I mean, this is also what I'll try to achieve in my romhack project, but I often meet problems of compatibility between resources, or fail to understand basic stuff like the sprite spawn routine.
;; Extra Property Byte 1 controls the timer before the sprite respawns
;; Extra Property Byte 2:
;; Bit 0 (01): Don't spawn if Mario is too close (when Extra Bit is set)
;; Bit 1 (02): Display smoke effect on-generate (when Extra Bit is set)
;; Bit 2 (04): Play sound effect on-generate
;; Bit 3 (08): Use free RAM to disable respawning sprites
;; Bit 4 (10): Suppress sound effect if Extra Bit is clear
So I think I've misunderstood.
I set the extra bye, which means 3 in my LM sprite add dial.
Then I want a short time, so I let my first "extension" be 1.
Then there's a problem of bits, so I suppose it is binary. I want my sprite to respawn with no extra delay if Mario's around; to have a puff of smoke and a noise; which is 110 in binary. I convert 110 to hex and it's 6.
So my "extension" value is now 16.
I don't know how long the 1 is, compared to 0? But after a good 10 SMW-seconds, still nothing happens, my sprite isn't respawned.