WL4Editor GBA: Difference between revisions

From GameBrew
(Created page with "{{#seo: |title= (Hack Utilities) - GameBrew |title_mode=append |image=wl4editor2.png |image_alt=WL4Editor }} {{Infobox GBA Homebrews |title=WL4Editor |image=wl4editor2.png |de...")
 
No edit summary
Tag: Manual revert
 
(13 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{#seo:
|title= (Hack Utilities) - GameBrew
|title_mode=append
|image=wl4editor2.png
|image_alt=WL4Editor
}}
{{Infobox GBA Homebrews
{{Infobox GBA Homebrews
|title=WL4Editor
|title=WL4Editor
Line 10: Line 4:
|description=Wario Land 4 Level Editor.
|description=Wario Land 4 Level Editor.
|author=wario-land
|author=wario-land
|lastupdated=2022/09/21
|lastupdated=2023/06/21
|type=Hack Utilities
|type=Hack Utilities
|version=2022
|version=0.16.5
|license=GPL-3.0
|license=GPL-3.0
|download=https://dlhb.gamebrew.org/gbahomebrews/wl4editor.7z
|download=https://dlhb.gamebrew.org/gbahomebrews/wl4editor.7z
|website=https://wario-land.github.io/HackVault/index.html
|website=https://github.com/wario-land/WL4Editor
|source=https://github.com/wario-land/HackVault
|source=https://github.com/wario-land/WL4Editor
}}
{{#seo:
|title= (Hack Utilities) - GameBrew
|title_mode=append
|image=wl4editor2.png
|image_alt=WL4Editor
}}
}}
Wario Land 4 Editor is an open source program for WL4 ROM hacking and Level Editing.
Wario Land 4 Editor is an open source program for WL4 ROM hacking and Level Editing.


==User guide==
Resources/Useful links:
===Resources===
* [https://warioforums.com/threads/a-new-project-for-wl4-rom-hacking-and-level-editing.2981 Release thread].
*[https://wario-land.github.io/HackVault/index.html Wario Land 4 Hack Vault] where you can find all WL4 romhacks.
*[https://wario-land.github.io/HackVault/index.html Wario Land 4 Hack Vault] where you can find all WL4 romhacks.
*[https://warioforums.com/threads/a-new-project-for-wl4-rom-hacking-and-level-editing.2981 Release thread].
*[https://github.com/wario-land/Toge-Docs Toge-Docs].
*[https://github.com/wario-land/Toge-Docs Toge-Docs].
*[https://discord.gg/EQ6JhvP Community Discord server].
*[https://discord.gg/EQ6JhvP Community Discord server].
==Screenshots==
https://dlhb.gamebrew.org/gbahomebrews/wl4editor3.png


==Media==
==Media==
Line 39: Line 35:
'''Wario Land 4 Editor tutorial : Getting started, layer, entity, door and camera modes''' ([https://www.youtube.com/watch?v=mh4auJjZRsQ Blanchon Ultime]) <br>
'''Wario Land 4 Editor tutorial : Getting started, layer, entity, door and camera modes''' ([https://www.youtube.com/watch?v=mh4auJjZRsQ Blanchon Ultime]) <br>
<youtube>mh4auJjZRsQ</youtube>
<youtube>mh4auJjZRsQ</youtube>
==Screenshots==
https://dlhb.gamebrew.org/gbahomebrews/wl4editor3.png


==Changelog==
==Changelog==
0.16.5:<br>
(minor changes)
* Do sanity check every time WL4Editor tries to get a pointer from the ROM.
* Support deleting all the orphaned patch chunks when saving patches.
* The Animation Type and Count per Frame spinboxes in Animated Tile Group Editor can now instantly save when change values.
* Fix ScriptInterface::SetRoomSize(...) cannot work.
* Fix "Clear all" and Room size change cannot modify Doors in the current Room.
* Fix Wall Paint Editor misses a part of data saving logic which causes incorrect palette loading in mmap scene when replaying a level.
0.16.4:<br>
(minor changes)
* Fix the first letter of the path string of every patch file will be removed from the PatchList data if the rom file is on the root of drive in Patch Manager Dialog on Windows.
* Fix Door changes won't set the UnsavedChanges bool to be true (Issue [https://github.com/wario-land/WL4Editor/issues/210 #210])
* Fix using deep copy constructor of the LevelDoorVector class won't set the dirty bool for the new instance (Issue [https://github.com/wario-land/WL4Editor/issues/442 #442])
0.16.3:<br>
(major changes)
* Support "C_dependency" patch type in Patch Manager Dialog.
* Fix cannot find all the available bg mapping data pointers in Room Config Dialog.
* Fix the change on destination door combobox cannot be applied in Door Config Dialog.
(minor changes)
* Optimize the asm and C patch compile and save logic to make it faster for Patch Manager, and faster free space offering logic for every type of save process
* Fix a single one Binary patch entry cannot be loaded after save in the Patch Manager
* Fix the first letter of the path string of every patch file will be removed from the PatchList data if the rom file is at the root in Patch Manager Dialog
0.16.2:<br>
(major changes)
* Port the WL4Editor to Qt 6 so the script feature can use more newer ECMA-262 features
* Replace "phantomstyle" by the Qt provided GUI style "fusion", since the first one cannot work in Qt6
* Support swapping the current Room with another Room in the current Level
(minor changes)
* Fix Layer 0 mappingtype change from 0x2X to 0x1X cannot be applied in Room Config Dialog
* Now new Room can be created without using existing RoomHeader data from the ROM
* Add the copyright scene in Credit Editor
* Support another one-tile height orange English letter input in Credit Editor
* Support lowercase letter input for 2-tile height case in the Credit Editor
* Fix Credit Editor cannot render the English point
* Fix WL4Editor will rendering the Room twice when using buttons to go to neighbor Rooms
* Show global door id for current Door, and display global door indexes using hex in Door Config Dialog\
* Fix Entity Selector dockwidget won't update after changes in Door Config Dialog being applied
* Fix graphical glitch on the first animated Tile group when rendering Tileset and Room
* Show Tile ID by hex in Tile16 Selector dock widget
* Fix the room id spinbox cannot synchronize with buttons sometimes
'''0.16.1'''<br>
(major changes)
* the WL4ditor will now open the Room where you hit save last time.
* Change the API container object name from "interface" to "WL4EditorInterface" due to js reserved keywords will cause Error when put them inside classes
* support bgm name customization in project configuration json file.
* support customizing entities' oam data in project configuration json file to change their graphics in the WL4Editor.
* Add "CurrentRoomHintLayer" as a new js object to draw custom rectangle, line and text on the hint layer of the current Room. the new APIs under this object include: GetAutoGeneratedHintLayer(), GetblankHintLayer(), drawRect(...), drawLine(...), drawText(...) and SubmitHintLayer().
* Support custom hint render by js script, you can config the js file path in the project setting json file.
(minor changes)
* Add spinbox to the main window to let users set current Room ID directly.
* support editing Layer 2 mapping type value in Room Config Dialog.
* Modify the logic of 2 script API functions GetFitnessJoinTile16_XX(), they can at least work this time, but only work like some helper functions. you cannot use it to directly check if 2 Tile16s have joinable edges since it's hard to implement edge cases.
* Add API: void interface.DoEvents(), which does something similar to the DoEvents() in VB.
* Add the "Abort" button for the js script output window. if you contains the interface.DoEvents() in your heavy logic, you can abort the running script.
* Add API: String interface.GetCurRoomAllDoorsRangeData().
* Add API: void interface.PrintEntityDefaultOAMData(int globalEntityId).
* Fix pressing the Add (palette) button in the left panel of the Sprites Editor will crash the whole WL4Editor.
* Add API: String interface.GetEntityListSource() to get the current entityset data of the current Door in the Room.
'''0.16.0'''
(major changes)
* Add Wall Paints Editor.
* Fix hookstring cannot be removed correctly if hook address and hookstring change at the same time.
(minor changes)
* Now you can import a tileset with its vanilla background tileset from another ROM.
* Add TileUtils object into the js script engine with its 3 member functions.
* stop user from import 40 by 40 layer 3 in Graphic Manager.
* let user to choose a ref palette when import tile data in Graphic Manager.
'''0.15.2'''
'''0.15.2'''



Latest revision as of 16:52, 25 January 2024

WL4Editor
Wl4editor2.png
General
Authorwario-land
TypeHack Utilities
Version0.16.5
LicenseGPL-3.0
Last Updated2023/06/21
Links
Download
Website
Source

Wario Land 4 Editor is an open source program for WL4 ROM hacking and Level Editing.

Resources/Useful links:

Media

Wario Land 4 Editor tutorial : Entityset editor & custom sprites (Blanchon Ultime)

Wario Land 4 Editor tutorial : Tileset editor & custom graphics (Blanchon Ultime)

Wario Land 4 Editor tutorial : Getting started, layer, entity, door and camera modes (Blanchon Ultime)

Screenshots

wl4editor3.png

Changelog

0.16.5:
(minor changes)

  • Do sanity check every time WL4Editor tries to get a pointer from the ROM.
  • Support deleting all the orphaned patch chunks when saving patches.
  • The Animation Type and Count per Frame spinboxes in Animated Tile Group Editor can now instantly save when change values.
  • Fix ScriptInterface::SetRoomSize(...) cannot work.
  • Fix "Clear all" and Room size change cannot modify Doors in the current Room.
  • Fix Wall Paint Editor misses a part of data saving logic which causes incorrect palette loading in mmap scene when replaying a level.

0.16.4:
(minor changes)

  • Fix the first letter of the path string of every patch file will be removed from the PatchList data if the rom file is on the root of drive in Patch Manager Dialog on Windows.
  • Fix Door changes won't set the UnsavedChanges bool to be true (Issue #210)
  • Fix using deep copy constructor of the LevelDoorVector class won't set the dirty bool for the new instance (Issue #442)

0.16.3:
(major changes)

  • Support "C_dependency" patch type in Patch Manager Dialog.
  • Fix cannot find all the available bg mapping data pointers in Room Config Dialog.
  • Fix the change on destination door combobox cannot be applied in Door Config Dialog.

(minor changes)

  • Optimize the asm and C patch compile and save logic to make it faster for Patch Manager, and faster free space offering logic for every type of save process
  • Fix a single one Binary patch entry cannot be loaded after save in the Patch Manager
  • Fix the first letter of the path string of every patch file will be removed from the PatchList data if the rom file is at the root in Patch Manager Dialog

0.16.2:
(major changes)

  • Port the WL4Editor to Qt 6 so the script feature can use more newer ECMA-262 features
  • Replace "phantomstyle" by the Qt provided GUI style "fusion", since the first one cannot work in Qt6
  • Support swapping the current Room with another Room in the current Level

(minor changes)

  • Fix Layer 0 mappingtype change from 0x2X to 0x1X cannot be applied in Room Config Dialog
  • Now new Room can be created without using existing RoomHeader data from the ROM
  • Add the copyright scene in Credit Editor
  • Support another one-tile height orange English letter input in Credit Editor
  • Support lowercase letter input for 2-tile height case in the Credit Editor
  • Fix Credit Editor cannot render the English point
  • Fix WL4Editor will rendering the Room twice when using buttons to go to neighbor Rooms
  • Show global door id for current Door, and display global door indexes using hex in Door Config Dialog\
  • Fix Entity Selector dockwidget won't update after changes in Door Config Dialog being applied
  • Fix graphical glitch on the first animated Tile group when rendering Tileset and Room
  • Show Tile ID by hex in Tile16 Selector dock widget
  • Fix the room id spinbox cannot synchronize with buttons sometimes

0.16.1
(major changes)

  • the WL4ditor will now open the Room where you hit save last time.
  • Change the API container object name from "interface" to "WL4EditorInterface" due to js reserved keywords will cause Error when put them inside classes
  • support bgm name customization in project configuration json file.
  • support customizing entities' oam data in project configuration json file to change their graphics in the WL4Editor.
  • Add "CurrentRoomHintLayer" as a new js object to draw custom rectangle, line and text on the hint layer of the current Room. the new APIs under this object include: GetAutoGeneratedHintLayer(), GetblankHintLayer(), drawRect(...), drawLine(...), drawText(...) and SubmitHintLayer().
  • Support custom hint render by js script, you can config the js file path in the project setting json file.

(minor changes)

  • Add spinbox to the main window to let users set current Room ID directly.
  • support editing Layer 2 mapping type value in Room Config Dialog.
  • Modify the logic of 2 script API functions GetFitnessJoinTile16_XX(), they can at least work this time, but only work like some helper functions. you cannot use it to directly check if 2 Tile16s have joinable edges since it's hard to implement edge cases.
  • Add API: void interface.DoEvents(), which does something similar to the DoEvents() in VB.
  • Add the "Abort" button for the js script output window. if you contains the interface.DoEvents() in your heavy logic, you can abort the running script.
  • Add API: String interface.GetCurRoomAllDoorsRangeData().
  • Add API: void interface.PrintEntityDefaultOAMData(int globalEntityId).
  • Fix pressing the Add (palette) button in the left panel of the Sprites Editor will crash the whole WL4Editor.
  • Add API: String interface.GetEntityListSource() to get the current entityset data of the current Door in the Room.

0.16.0 (major changes)

  • Add Wall Paints Editor.
  • Fix hookstring cannot be removed correctly if hook address and hookstring change at the same time.

(minor changes)

  • Now you can import a tileset with its vanilla background tileset from another ROM.
  • Add TileUtils object into the js script engine with its 3 member functions.
  • stop user from import 40 by 40 layer 3 in Graphic Manager.
  • let user to choose a ref palette when import tile data in Graphic Manager.

0.15.2

Major changes:

  • Fix random rom corruption after adding new Room then save changes, which is caused by logic conflict between the old "Add new Room" code and the new "old layer data invalidation" code after 0.14.X release.

Minor changes:

  • Add more script APIs: GetCurTilesetTile16EventId(...) and GetCurTilesetTile16TerrainType(...)..
  • Add "clean up unused forground Tile8x8" button to the Tileset Editor..
  • Add "find Tile16 by pal" button to the Tileset Editor..

0.15.1

Major changes:

  • Now you can use optional EntryFunctionSymbol identifier to set the entry function in every c patch file.

Minor changes:

  • Add the buttons to jump to the first, the last, the 0x10-th entity immediately in Entity Selector Dock Widget.
  • Fix undo or redo Tileset changes cannot keep the graphics of global animated tiles up to date.
  • Fix the UI logic of H-Flip and V-Flip when editing animated TIle8x8s in Tile16 set in Tileset Editor, they acts like swapped after accepting the editing.

0.15.0

Major changes:

  • Add Animated Tile Groups Editor.
  • Fix importing tileset from other rom will cause problem when opening Room Config Dialog.

Minor changes:

  • add 2 new API test functions "_ExtractSpriteOAMPackage(...)"
  • now you can import oam data with "0x" prefix and commas as separators in the data string when using "Reset All" *button in Oam Designer in the Sprites Editor to render sprites.
  • now bad palette number in oam data won't crash the WL4Editor when rendering sprites or oam data.

Release notes.

External links

Advertising: