News:

11 March 2016 - Forum Rules

Main Menu

SC4ED - Super Castlevania 4 Editor

Started by RedGuy, May 07, 2016, 09:25:50 PM

Previous topic - Next topic

Vanya

Regardless, there are cases that may come up that make it useful to have available in the distribution of the patches.
And besides that it's already been made so there isn't much use in pointing out that it's use can be avoided.
Plus, a compact ROM expander could be useful to people that are only interested in graphics hacking alone.

RedGuy

https://drive.google.com/file/d/0Bx9gzQZCkH8qRmVmbTEwQXdESEk/view?usp=sharing

- Changed many of the enemy and interactive events to display sprites.
- Added some unknown fields to the event editor.

Enemies (type==0) seem to use the match as a bit field: 0x8=set to enable foreground, 0x4=set to only see in new game.  Not sure what it means for other events.

MathUser2929

#142
Glad to see another update. Keep up the good work.

July 13, 2016, 05:31:03 PM - (Auto Merged - Double Posts are not allowed before 7 days.)

Well, I played through the CV Hard mode mod and it gots me inspired to try doing a romhack sometime. What are the flaws of starting one now? From what I saw of the hack you can move enemies, objects, candles, I think that's what you really need anyway. Or is the editor still majorly flawed?

Drunken Draconian

You should be able to do most of what you want. The "flaws" are minimal, at this point, still lots of features to add but you can do most everything. You are kind of stuck with the tiles on the levels that are already there. You can make a few custom tiles as I did, but there is a chance they will bug stuff out. With the new event sort feature you should be able to move stuff around more too. Only thing to consider is if a new version comes out that expands the rom in a new way you will be stuck on the current editor for the rest of your project. So you can do a level hack easy If you want to do art and stuff too, wait a bit.

MathUser2929

If you need a old version of the editor to continue a hack when a new version comes out, he should be uploading new versions seperately then. I imagine all you have to do is use a different file name and google drive will accept it. I'd like to know what version we are in anyway.

RedGuy

#145
https://drive.google.com/file/d/0Bx9gzQZCkH8qMTM4VkVsMUVoUTA/view?usp=sharing

- Added basic collision detection viewing feature in the tile and block editors.
- Added property editor to allow changing of a few game states e.g. number of starting lives, level timers.
- Added decompression of audio related data thanks to DarkSamus993.

A lot of the decompressed regions in bank $81 were reordered in the expanded ROM.

The collisions are assigned per-level per-tile range.  So adding support to change tile collision type or add additional tiles with a specific collision type requires shifting all following tiles in memory, updating the per-level range table, and rewriting all the blocks that reference the modified tile numbers.  The mode7 levels tend to have custom collision tables in ROM and don't use the standard per-tile collision that the editor displays.

The expanded ROM layout will continue to change as more compressed regions are found and uncompressed regions get grouped together to facilitate editing.  So don't rely on data being in a specific location.

Bahamut ZERO

QuoteThe expanded ROM layout will continue to change as more compressed regions are found and uncompressed regions get grouped together to facilitate editing.  So don't rely on data being in a specific location.

Thank you for your continued work on this kickass editor!  :beer:
Like Super Mario Land? Then you'll love my first completed Rom Hack: Maniac on the Run!

RedGuy

#147
https://drive.google.com/file/d/0Bx9gzQZCkH8qNm9PTFJHcjNRSU0/view?usp=sharing

- Added coalesced of scene data, block data, and padding of tiles.
- Fixed several bugs in the tile editor.
- Fixed internal emulator graphics corruption for JP.

Coalescing of scene and block data makes it possible to edit some of the scenes in levels that couldn't be edited before.  All BG0 (BG1) compressed scene and block regions were grouped into an uncompressed contiguous $2000 bytes (max size with current WRAM layout) after expansion.  It's not easy to do that with tiles so those just got padded out to $2000 bytes when possible.  One bad thing about this is many of the levels can't use most of this extra space (see below) and the ROM is now using almost all of the available 4MB.  So this will likely change - maybe with a per level max scene count.  It should now be possible to edit all scenes in some of the bigger levels, but camera locks may still prevent accessing them.

I looked into level dimensions again and it seems like the level has a type identifier which is used as an index into a table of 3 byte addresses to jump to.  The functions seems to optionally handle the scrolling of both BG0 and BG1 as well as having custom camera locks and mode7 handling.  It's not as simple as changing the level type to change the properties of the level as there are lots of assumptions built into each type.  For example, the first level (type == 6) doesn't even call the Y camera position change function because the original level never had a need to change that.  There is reuse of certain level types.  Most of the levels use type == 9 which is Nx1 scenes with no Y camera scrolling.  It's possible that a generic handler could be coded to allow for more arbitrary level properties and that coupled with camera locks would enable more interesting stuff.  Many of the larger levels that are MxN (where M > 1 and N > 1) have their own unique type and handler.

The expanded ROM layout will continue to change as more compressed regions are found and uncompressed regions get grouped together to facilitate editing.  So don't rely on data being in a specific location.

MathUser2929

Sounds like it's really coming along. Sad that most of the ROM is used now. When will we be able to add objects that weren't there before? I mean like more ground tiles or something? Being able to delete some would also be a good plus.

Vanya

It'll be available when it's available. I'm just glad it's still being worked on at all.

RedGuy

https://drive.google.com/file/d/0Bx9gzQZCkH8qTnVyV1pmdTNrMEE/view?usp=sharing

- Added coalesced tile data.
- Added supporting for bank crossing in decompression (copy) code.
- Added a few missing compressed regions to the list of things decompressed.  Thanks to DarkSamus993 for finding these.

The coalesced tile data means that some of the weird problems with editing tiles and a different one changing is hopefully fixed.  Not all levels support editing tiles when the game does something non-standard.  I didn't test all levels.

Supporting bank crossing ends up freeing up 0.5MB, but 0.25MB of that disappeared when the tiles were coalesced.

I started coding tile add support, but the way the engine supports collisions makes this a huge problem.  Things I had to rewrite in the level after adding the tile:
o Collision table.  Done.
o All blocks in the level to increment tile >= inserted tile.  Done.
o Dynamic tiles writing into VRAM throughout the level.  Done.

But there are still completely custom per-level dynamic tiles like the growing vines and the grass monster thing that are still a problem.  So it's disabled.  It may be easier to leave the existing tiles and collisions alone and support a completely new collision table for tiles that are added.  That will require rewriting part of the game's collision detection code.

The expanded ROM layout will continue to change as more compressed regions are found and uncompressed regions get grouped together to facilitate editing.  So don't rely on data being in a specific location.

I need a break from working on the editor for a week.

MathUser2929

Oh, thank god. I was just about to start editing. I wanted to use only the square blocks for the ground and it looks like that isn't possible yet. When you get tile add support I think that's when I'll start.

RedGuy

https://drive.google.com/file/d/0Bx9gzQZCkH8qWnRlT01tWFhtZmc/view?usp=sharing

- Added expanded events.
- Added support for adding/deleting events.
- Added expanded collision mapping tables with custom lookup code.
- Added support for editing whip properties and movement properties.
- Fixed various bugs (and probably introduced some)

There are still a lot to be figured about with events, but generally you can go to the event type you want to add/copy (0=enemy, 1=candle), click add and then change it to what you want, move it to where you want (middle mouse button will do this), and then click sort to reorder them properly.  Converting enemies to candles and candles to enemies requires some more work.  And type 2=custom events are not something you can just randomly add/delete without writing assembly.  Expanded events lets you put a total of 2800+ more events across all the levels.  There are likely other engine-specific limits when adding events.

Expanded collision supports lets you add a tile in a blank spot and assign it any collision property.  This required rewriting the collision checking code in the game so that it's not dependent on the order of the tiles.  That tile can then be added to a new block and the new block can be added to a scene.  I tested it by adding a new step type to a few different levels.  The game still relies on certain tiles to be in certain positions so don't expect to modify an arbitrary tile and have it work correctly.  Level 1 has custom collision lookup code for foreground/background.  Also, the mode7 rooms are all custom in how they deal with collisions.  You're on your own if you want to edit those.  Some levels don't have any spare room in the decompressed tile data.

A lot has changed with the new expanded ROM and I've attempted to check as much of it as possible, but it's likely to be buggy.

The expanded ROM layout will continue to change as more compressed regions are found and uncompressed regions get grouped together to facilitate editing.  So don't rely on data being in a specific location.

MathUser2929

I don't suppose you can add another shortcut for moving events could you? I've never owned a mouse with 3 mouse buttons and the touchpad on this laptop dont have 3 either.

RedGuy

#154
https://drive.google.com/file/d/0Bx9gzQZCkH8qRDZCMXl0MjhXWTA/view?usp=sharing

Added expanded camera locks
Added expanded exits and editing
Added expanded level transitions and editing
Added expanded entrances and editing
Added (experimental) level save/load support
Added volume control for internal editor (see internal editor settings)

Camera locks and entrances can be edited in the property editor after expanding the ROM.  The unexpanded ROM has 1-3 entrances per level and they are mostly hardcoded.  With the expanded ROM there is support for up to 8 entrances to a level (standard is typically 2) and they are fairly general.  I'm not sure if all the code that uses the entrance number in RAM has been updated so there may be some bugs with this.  If you startup the internal emulator move Simon to a spot in the level you can hit the record button in the property editor to overwrite the current entrance with the values in the emu.  This may require some manual customization on certain where custom entrances are used.

To transition between levels.
1) Spawn event with type=2, id=$15, subid = exitSubId  (some levels use custom events that require a hex editor to change, e.g. the first one with the drawbridge)
2) Check exitSubId against exit comparison
3) Use exitNum to find nextLevel and entranceNum in transition data
4) Start new level and load up all info using entranceNum including Simon's position, the camera positions, camera locks, etc

Saving off an individual level as a SCL file is now possible.  This was added to allow making new levels for the randomizer, but it may also be useful for other things.  This is experimental and likely to change in future versions of the editor.

Double-click right also moves an event now.

The expanded ROM layout will continue to change as more compressed regions are found and uncompressed regions get grouped together to facilitate editing.  So don't rely on data being in a specific location.

MathUser2929

That's neat that you can save levels as individual files now. It reminds me of the first zombies ate my neighbors editor. You can use it to colaborate on a hack. Will you support changing the tileset theme eventually? Maybe that's asking alot but it would be nice to mix up the order that levels are encountered. I realize you'd probably have to build a level over from scratch tho. Still tho.

PresidentLeever

"SC4Ed.exe is unsafe and was removed" - Norton

Risk name: WS.Reputation.1
Category: Insight - network threat
Risk level: Medium
Mini-reviews, retro sound chip tribute, romhacks and general listage at my site: Mini-Revver.

MathUser2929


PresidentLeever

Can someone confirm if I can make an exception for this file? Preferably a mod.
Mini-reviews, retro sound chip tribute, romhacks and general listage at my site: Mini-Revver.

SunGodPortal

Quote from: PresidentLeever on October 15, 2016, 12:54:10 PM
Can someone confirm if I can make an exception for this file? Preferably a mod.

I wouldn't get too concerned about this. I no longer use Norton because I got tired of it constantly giving false positives just because it doesn't understand the concept of ROM hacking tools and the fact that it wanted to be the dictator of my computer. It was SO intrusive.

QuoteRisk name: WS.Reputation.1

I think that basically just means that Norton doesn't have enough information on this file in their database so until more information is collected on it (until more people who use Norton have this file on their comp) then it will regard it as suspicious whether it has any other reason to or not.
Cigarettes, ice-cream, figurines of the Virgin Mary...