-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathCHANGELOG
373 lines (333 loc) · 23.1 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
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. (Issue #407)
0.15.0:
(major changes)
- Add Animated Tile Groups Editor.
- Fix importing tileset from other rom will cause problem when opening Room Config Dialog (Issue #402)
(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.
0.14.2:
(major changes)
- Support recent script menu items. (Issue #329)
- the old "view hidden coin" feature got replaced by "View Extra Hints", support showing terrain and event id hints, while all the id hints can be represented with a customized character which can be config in the project json setting file. (Issue #372)
(minor changes)
- now you can drag and drop gba file to the WL4Editor.exe to open rom.
- Fix the aggressive tile reduce in Tileset Editor and Graphic Manager cannot reserve the tiles with less noise pixels or with less graphic features. (Issue #391)
- now the color of door and entity boxes can be changed in project json too.
- now you can update project settings via "Reload project setting" menu item.
0.14.1:
(major changes)
- Fix "the graphic manager will cause crash on both the WL4Editor and the game rom after the second save" (Issue #395)
- Add project setting load and save feature, now users can modify the json file in the same folder of the gbs file to change project settings
(minor changes)
- Now the "Tileset import from another ROM" feature will use default bg tile data stuff to avoid potential conflicts caused by the Graphic Manager features (Issue #394)
- Fix deleting Tile16 by pressing backspace or delete key in Tileset Editor cannot reset its terrain type and event id
- Add OpenRomInitPath to the ini file (Issue #363)
0.14.0:
(major changes)
- Resolve "opening a second rom will make the editor become unstable, which can also causes potential corruption in the rom file" (Issue #225)
- Add Graphic Manager (Issue #274)
- Support changing background tile8x8 set in Tileset Editor (Issue #273)
- Support using custom graphics in layer 3 in Room Config Dialog (Issue #275)
(minor changes)
- Description of patches will be shown in a separate textbox in Patch Manager instead of popup tooltips
- Changed but unsaved function patches or new function patches will be marked "TBD" in the "Patch address" column in Patch Manager.
- Add "Reload" button in PatchEditDialog to re-parse the same patch file (Issue #228)
- Add tile16 positional offset info to statusbar
- All ID numbers in the WL4Editor should be shown in Hex (Issue #377)
- Add info textbox in Tileset Editor to show unused palettes
- Now you can import Tile16 by the same way you import Tile8x8 in Tileset Editor
- Press BSP or DEL to delete selected Tile16 in Tileset Editor
- Support cleanup duplicated Tile8x8 from the Tile8x8 set and Tile16 set in Tileset Editor
- The room should be able to contain 64 entities in every difficulty not 46 (Issue #382)
- Reset camera dock widget when applying room config changes (Issue #386)
- Add window title for Select Color Dialog for all those transparent pixel conversion (Issue #385)
- Fix mapping type 0x20 Layer transparent Tile8x8 render problem (Issue #211)
- Add new js interface API functions: ShowSaveDataAnalysis() and _GetTilesetGFXInfo(int tilesetId)
- Add the option to use quasi_memcmp to reduce Tile8x8 more aggressively in Tileset Editor.
- Fix a combobox in OAM Designer keeps adding items every time when open the dialog (Issue #376)
0.13.6:
(major changes)
- Fix FindAllChunksInROM does not find all chunks of a specified type; would theoretically affect patching routine though there's been no reports of problems from users so far (issue #349)
- Fix that old chunks which are a part of saving levels are not invalidated, causing save data area to fill up with orphaned data (issue #350)
- Add optional scroll save
(minor changes)
- Support Nintendo intro check, Now rom with an Nintendo intro cannot be loaded into the WL4Editor
- Fix unsaved Tileset changes cannot be found in Room Config Dialog (Issue #352)
- Support importing Tileset from another rom
- Disable help button in every Dialog
- Fix Rectangle select mode can disable switching rooms (issue #359)
- palette loading now has looser condition checks when importing tile8x8 graphic data (issue #355)
- Set open script default path be the ROM's folder and now dialogInitialPath can be initialized correctly when opening a ROM (issue #356)
- Fix the Room Config Dialog does not disable Layer 0 Width and Height spinboxes when setting Layer 0 mapping type to 0 and no more layer priority reset when change layer 0 mapping type (issue #357)
- Fix incorrect OperationParam deleting when loading a new Level, also a bunches of other fixes and changes relative to OperationParam (issue #364)
- Fix an edge case bug in the undo & redo logic which will possibly cause problems when save global elements' changes (issue #366)
- Add sanity check to prevent data overwriting to existing chunks when save new data
- Fix expanding rom while saving will make orphaned chunks appears in the rom (issue #367)
- Add some new interface APIs _UnpackScreen(...) and _PackScreen()
- Fix camera box auto-reset flexible boundary incorrectly when clicking listview in Camera Config Dock Widget (Issue #368)
- Fix the blade fish enemies' name things in the door config dialog
- Fix the patch address in the Patch manager's table view shows the RATS tag address, but not the function start address (issue #371)
- Add PatchAddress info into the HookString in the Patch manager's table view, so the P value will be shown in the HookString now
- Fix a bug in the UI logic which permits deleting the last Door in a Room (issue #373)
- Add the missing RoomHeader's BG layer scrolling flag hints into the editor which is found in the leak
0.13.5:
(major changes)
- Fix editing existing patches would corrupt substituted bytes so that patch could not be undone (issue #341)
(minor changes)
- Right clicking an entity in entity edit mode will now switch to that entity in the entity selection widget (issue #215)
- Fixed an incorrect tileset name for Doodle Woods in room config dialog
- Disallow patching the first 4 bytes of the ROM
0.13.4:
(major changes)
- Fix re-saving patches will corrupt the saved substituted bytes, effectively making it so you cannot remove the patch or else it make the ROM crash (issue #337)
(minor changes)
- Fix wrong patch address displayed for hex edit patches
- Fix "save-as" does not switch active ROM file (subsequent save, or using patch manager would modify the first ROM)
0.13.3:
(major changes)
- Fix another bug which could cause corruption while expanding the ROM
(minor changes)
- Add scroll area to room config dialog for accessiblity on smaller displays (issue #333)
0.13.2:
(major changes)
- Fix a bug which could cause corruption while expanding the ROM
(minor changes)
- Fix incorrect reset of camera config dock widget UI when clicking listview (issue #323)
- Change script API functions for import/export entity list data (to file) to import/export with variables instead
0.13.1:
- Fix incorrect patch alignment logic which could corrupt ROMs when saving C patches
- Fix layer priority setting doesn't work correctly in some edge cases (issue #325)
- Remove info dialog when setting door type to type 1 (portal & door) in Door Config Dialog (Issue #322)
- Change versioning scheme from beta-X to X.Y.Z, starting with 0.13.1 (since this is a smaller update to beta-13)
beta-13:
(major changes)
- Added sprites editor/OAM designer
- Added credits editor
- Fix unable to save level after changing a room's camera type from limitators to something else (issue #284)
- Add support for arrays and switch statements in patch code (issue #246)
(minor changes)
- Support for hiragana/katakana in level names
- Support replacing background color when exporting tileset graphics
- Display mouse coordinates of the selected layer (issue #282)
- Can now restore layers 0 or 2 via undo after disabling in room config dialog
- Populate full path to patch file in patch edit dialog
- Removed warnings when creating new room
- Fix that patch code optimized with stdlib calls would crash the ROM (issue #247)
- Fix that layer 0 enable settings in room config dialog did not work (issue #315)
- Fix adding a new room when already on a room with layer 0 type 0x20 would corrupt the ROM (issue #290)
- Fix buggy graphics export in tileset editor (issue #288)
- Fixed palette loading for entities
- Fix status bar not visible on smaller displays (issue #212)
- Fix instances in which tiles in the map16 tile selector were not selectable (issues #269, #283)
beta-12:
(major changes)
- Fix save corruption in beta-11 when on a room with camera limitators, you add a new room from there, and then save the ROM (issue #263)
- Added additional sprite priority elevation choices to layer priorty setting in room config dialog
(minor changes)
- Fix previously selected tile in map16 cannot be re-selected when changing rooms (issue #269)
beta-11:
(major changes)
- Added more script interface API functions and changed some of their names
- Support importing and exporting palette files in the tileset editor
- Fixed camera limitators (issue #230)
- Support adding additional rooms to a level (up to 16 total)
- Fix that you could not provide a hook string with the patch address identifier "P" at the beginning of the string
- Fixed hook string is appended with garbage when reopening patch manager after saving a C patch (issue #256)
- Fixed animated tiles in-game not changing after global switches change (issue #252)
(minor changes)
- Fix updating the palette does not update the graphicsview in the tileset editor
- Fix assertion failure when adding too many entities to a room
- Support configuring raster type and water flags in room config dialog
- Support configuring layer 0 and layer 3 scrolling parameters in room config dialog
- Fixed layer 0 autoscroll not populated correctly in room config dialog (issue #233)
- Fixed error when converting layer 0 from map16 to tile8x8 mapping type in room config dialog (issue #234)
- Fixed incorrect population of checkboxes in room config dialog when changing tileset (issue #235)
- Fixed graphical bug with destination preview in door config dialog when both doors are in the same room
- Fixed issue with scrollbars not working properly in door config dialog when layers 0 and 1 have a different size (issue #229)
- Fixed layer 0 editing is buggy when it's a different size from layer 1 in beta-10 (issue #238)
- Fixed selecting a door will change its position (issue #239)
- Fixed cannot get the correct tile ID for tile16 in the script interface (issue #243)
- Fixed issue with alpha blending not rendering correctly for transparent pixels (issue #250)
- Fixed index out of bounds exception when importing 8x8 tiles into tileset in Linux
- Support for editing Japanese ROM (except for level titles)
- Fixed crash when an undefined area is edited in layer 0
- Fixed wrong max number settings for adding new foreground tiles into the Tileset in the Tileset editor (issue #254)
- Fixed Alpha layer will always be enabled when switching to a different Room with layer 0 turned off (issue #249)
- Support deleting foreground tile8x8 in the Tileset editor, and now the Tileset editor will always import every tile into the Tileset from your data file
- Show selected tile8x8 id with more hints in Tileset editor and optimize importing foreground tile8x8 loading a bit
- Various minor UI tweaks
beta-10:
(major changes)
- Add patch manager feature which allows you to add or remove patches, ranging from simple hex edits to custom C code called from an asm hook.
- Added INI program settings and support Opening Recent ROM in File menu.
- Add Tileset editor feature.
- Add menu item "Export" which renders visible layers as a PNG file.
- Support running JavaScript in the editor, which can be used to programmatically modify layers.
- Added output widget which shows debug info and warnings.
(minor changes)
- Support drag & drop for door and entity; double-click to open the door dialog instead of left-click.
- Fix a bug for the EditMode DockWidget, now switching to different Rooms won't change the visibility settings
- Fix edge cases of drawing Tile on Layer 0 when the size of Layer 0 is different from the Room's size
- Fix Layer alpha setting problem in RoomConfigDialog.
- Stability after saving has improved.
- Adjust the EditMode dock widget, Support showing hidden coins in breakable blocks.
- Fix some entities rendering glitches caused by wrong tile loading.
- Add another available Camera control type, Vertical Seperate.
- Support tristate for Entities Layers visibility checkbox to support not rendering position boxes for entities.
- Add Room size limitation.
- Use the Phantomstyle UI theme.
- Add program Icon.
- Support showing mouse position in status bar.
- Update the UI of Door Config Dialog.
- Fix an edge case bug in Door Config Dialog, when the destination door and the current door are in the same room, the destination door previewer cannot update the changes of the current door.
- In the Door Config Dialog, both graphicviews of the door preview and the destination door preview will auto-reset scrollbars when you reset them.
- Fix an edge case bug in Layer data compression procedure.
- Contributors in about dialog are listed in alphabetical order now.
- Shortcuts bugfixes and menu tweaks for clearing everything in current room (ctrl + delete) and switching to different room in current level (pageup & pagedown).
- Fix color blending problems when editing layers.
- Support setting layer 0 size different from room size.
- Support using direction keys to set selected tile16 when editing layers.
- Support zooming for the main graphicview scale, via menu and shortcuts.
- Support Rect-select in Tile16 selector dock widget.
- Support loading debug level.
- Support Rect-select and moving around tile16s in main editor window.
- Fix cannot de-select Door or Entity when switching between editing modes.
- Separate operation lists into global list and room lists in the backend ("global" undo/redo not implemented yet).
beta-9:
- Fix clear-all only clears hardmode entities
- Fix undo multiple times then placing a tile crashes the editor
- Find wrong max value setting of some spinboxes in door config dialog
- Fix shrinking the Room cannot protect you from deleting the last Door, optimize the auto-reset door position code
- Fix new camera limitators data does not work in-game
beta-8:
- Fix cannot delete out-of-range Doors when shrinking Room size.
- Fix changing the tileset in Sapphire passage level 4 causes a crash.
- Adjust the code of the program to let it be able to compile by MSVC64 C++ compiler.
- Change an expression: from "Tile16 event id" to "terrain type id" in both ui/code.
- Forbid users to delete the last Door in any Room.
- Fix an edge case bug: update entity list dock widget everytime if delete Door(s).
- Support clearing CurrentRoom except camera settings with "Ctrl + Del" (focus is bugged; click any top menu item then Ctrl+Del to trigger)
beta-7:
- Fix moving Entities via direction keys cannot save
- Support swapping Layers/Entity lists
- Support clearing Layers/Entity lists
- Fix pressing "cancel" on editor close save prompt still closes the editor
- Added a save prompt when loading a new ROM file
beta-6:
- Support using page_up and page_down keys to go to different Rooms
- Delete out-of-range Doors, Entities, Camera limitators when shrinking Room size
- Fix runtime error when rendering Rooms from Level "the big board" and accelerate the render speed
- Support moving selected Door/Entity via direction keys
- Skip editing current layer when its MappingType is 0x20
- Support choosing Map16 tile by right clicking on the selected Layer
- Fix saving ROM after modifying room settings will save layer type 0x20 chunk data (it should only use existing data pointers)
- Fix merely deleting Entities cannot save Entitylist changes to the ROM
- Fix build error C2398 when using msvc, change some type from int to uint
- Add Undo/Redo operation for RoomConfigDialog
- Fix being unable to save disabled layers
- Fix layer changes in RoomConfigDialog not setting layers as "dirty"
beta-5:
- Fix changing camera limitators then saving causes ROM to not boot
- Fix some spinbox conditions for camera limitators
- Fix loading a second ROM file doesn't work
- Fix several memory leaks
beta-4:
- Fix frog switch timers not saving
- Fix Wario's appearance offset from destination door in DoorConfigDialog
beta-3:
- Disable most menu buttons before ROM is loaded
- Fix changing the destination door in DoorConfigDialog intermittently crashes
- Fix rendering of certain entities in Room.cpp crashes editor
beta-2:
- Added changelog
- Reorder difficulty timers by normal, hard, s.hard in level config dialog
- Added upper/lower bounds to camera control spinboxes
- Adding a new door now triggers the "unsaved changes" flag
- Clarified a few ambiguous tileset names
- Fix not being able to set any destination door
- Fix not being able to set BGM values greater than 255
- Fix DoorConfigDialog triggered from a new door crashes editor
beta-1:
- Initial release