News:

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

Main Menu

SMILE JX [new poll]

Started by JAM, June 20, 2012, 08:58:07 PM

Previous topic - Next topic

How to display the address in Level Data field in Pointers window?

In hex format (300000 means hex address 300000)
3 (33.3%)
In lunar format aka bank:address (hex address 300000 will be displayed as E08000)
6 (66.7%)

Total Members Voted: 0

Voting closed: June 20, 2014, 02:56:45 PM

JAM

As you know, Jathys tired to work on his editor and released a source code. Let's thank him for his hard work (and also for naming forms and variables easy to find and understand and for making good comments in source code). Now I'll support SMILE and will make a new versions. I simply can't let SMILE die, especially being not also ASM coder and ROM hacker, but a programmer knowning (not only) Visual Basic.

Project is now named SMILE JX instead of Parlor. The goal of the project is to make SMILE fully supports functions and patches that I'd like to work with long time ago and also make a features that impossible to make in patch form. Some features should obviously be in SMILE long time ago and because of that I'll make each release after creating certain amount of features. Less offen than Parlor releases was, but more offen than original SMILE releases were. Each version will be more or less stable. Source code with commented changes will be sent to anyone by request.

I know, Scyzer is already working on improving SMILE, so I prorably will not add features she is working on. Instead of begging her to did this or that I'll better do this by myself. Because I can. =) If Scyzer likes these updates, I'll send a code to her and then Parlor Waffle (SMILE 2.75) + SMILE JX (2.8+) = SMILE RF (3.0). And even after that I hope to add some features to the program if I'd like to.

I highly recommend to NOT replacing your current SMILE version and make each program have it's own folder.

If you'll find any bugs, please let me know.


List of changes:

16.10.13 (2.83):
Finally, the next version after long break.

  • In the Beauty Salon all palettes (except Samus' ones) are loaded from the editable text file. All known palettes and a few not known (for now) are added to this file.
  • I'm a Genius is now a clickable checkbox.
  • Now when clicking to "Export Palette" you can export all colors from selected palette by clicking "Yes" in the dialog window.
  • No more endless Samus.tpl overwriting when exporting the palette. Now palette will be saved to the file containing hack name (optional), palette category and type. Something like "Super Metroid Hack Kraid damage gradients.tpl". In case you're a genius, expect to get filename like "My Super Hack 12E359-3F.tpl".
  • Filename of tiletable of SCENERY when exporing now will contain tileset number like "My Super Hack_SCENERY_7.ttb".
  • Detected and fixed the bug causing the program to load palettes from $FFxxxx addresses when the actual address is between $8000 and $FFFF.
  • "Samus" Suit in Beauty Salon is renamed to "Power" as it actually is.
  • Unknown Palette FX1 of Crateria is renamed to "Flash dark purple" as it actually is.
  • "Flash orange" in FX1 of Crateria is renamed to "Glow-red/orange" similar to one in the Brinstar FX1 list.
  • Added the code to Graphics Editor that give the user warning if next palette, tile table or tile graphics will be overwrited when editing palette, tile table or exporting the new SCENERY graphics.
  • Used / allowed space is now displayed at the top of the Graphic Editor window, like when editing the room.

07.12.12 (2.82.2):
Intermediate version contains just bugfixes. More stable than 2.82

  • Fixed run-time error "373". It happens if you're changed mdb.txt file between SMILE loads when working on different hacks. This bug is not allowing SMILE to run in attemt to load the room that not exists in file mdb.txt. Now in that case the very first room in the list will be loaded.
  • Fixed bug causing the game crash after entering the room with already collected PLM with graphics used in CRE (Missile, Super Missile, Power Bombs, Energy Tank). If you have modified this PLM, zero word was saved to 3rd byte of item code causing the crash.

16.10.12 (2.82):

  • Added support for Scroll repoint patch. Now all scrolls will be loaded from another bank correctly.
  • Added support for Yellow scrolls patch. But new scrolls can be set only if patch is actually applied. I thought that 2 white colors will be too confusing as well as yellow and orange scroll, so scroll frame colors were changed a bit to navigate easily:

03: Aqua scroll: red scroll becaming blue
(marked as "orange" in original patch desription).
04: Yellow scroll: red scroll becaming green
(red + green = yellow).
05: Purple scroll: red scroll becaming blue,
but turning into red after leaving this screen
(red + blue).
06: Orange scroll: red scroll becaming green,
but turning into red after leaving this screen
(red + green + more red).

  • Now event names can be loaded from text file. Edit file "files\events.txt" and name events in your hack as you wish.
  • $100 Extra Events patch is supported.
  • Layer1_2 in pointers window is renamed to FX0(Setup Code) to better fit it's action (ASM code executed once, before FX2, nothing to do with layering).
  • Add New Graphic Set feature was improved. Now it have protection from missing patches. Although, you need to set pointers manually in hex editor in this version.
  • Finally, Run time error 76 was killed. SMILE.ini file will not be corrupted anymore when selecting no ROM at first time. If it was corrupted earlier, it will be deleted and SMILE finally runs.
  • Fixed bug causing data overwriting when entering Hex address instead of SNES address in Level Data field. Now you if you save the room with Level Data pointer $300000, data at $180000 (30:0000) will not be overwrited and pointer will be recoded to SNES format (E0:8000).
  • Fixed little bug in PLM C878's description.
  • Fixed small bug in level_entries.txt. Line 280000 is replaced with 278000.

02.07.12 (2.81):

  • Fixed bug causing program crash when selecting no ROM.
  • Diagonal Electrical Outlet GIFs were remaked to make spawn PLMs to the right position.
  • Unused Item and Beam bits can be set in TestRoom options. Useful if your hack have new items.
  • Boss events are marked in regular event list. Now it's easy to set room state depending on boss event from any area.
  • Unused boss bits are marked like (main boss) or (mini boss). Bomb Torizo is placed in front on right check (finally!).
  • Certain events are marked in boss bits. Now it's easy to make room state depending on few events!
  • Fixed bug causing "Run time error 55" when saving palette in Graphic Editor. Now palettes can be saved again.
  • Fixed little bug of dragging slope. Now while dragging slope metroid icon with arrow will be shown as before.
  • Now you'll need to confirm your desire to Save Room. I did that to prevent clicking on Save Room icon when trying to click on ROM icon as these 2 icons are close to each other.
  • Max amount of Enemies to set in Enemy/PLM +/- window is set to $20 (instead of $32) because the game can't actually handle more than $20.
  • Now you can set 0 enemies and 0 items in Enemy/PLM +/- window.
  • ROM Checksum corrector was added, optimized, broken and fixed. No more [bad checksum] or CHSUM: FAIL messages.

21.06.12 (2.80):
First official release of SMILE JX.

  • Extended support for Ceres & Debug patch. Now Debug area name can be edited in SMILE. Text area names will be saved to exact places where they are.
  • CRE will be removed only in area that was set in ROM.
  • Small cosmetic changes in Hotkeys and TestRoom forms.
  • Program info and contacts were changed to avoid bugging Jathys.

17.06.12 Private release (2.79):

  • Now you can select message number to display when collecting certain item and change item graphics pointer in PLM Editor. Graphic text box will be active only when selecting Item or Beam. Message text box will be active only if it actually sets here.
  • Now you can set "Hits to Open" / "Power to Open" property for the Orange Doors, Beam Eye Door and Electrical Outlets.
  • Added Diagonal Electrical Outlet support.
  • Added Exceed maximum check for Test Room menu. Now you can load the game from SMILE having more energy and ammo that original game have. Useful if max you can get in your hack is something like 250 Missiles, 75 Super Missiles and 75 Power Bombs.
  • Unused gates from Upside down and opened gate patch are added to PLM folder.
  • All gates are have a bit detailed description.
  • If the PLM have header consisting of 3 words, like doors, then 3rd word will be shown.
  • File level_entries.txt is replaced by fixed version from patch Level Entries Fix v1.1 by me and Scyzer.
  • All unused enemies from Extra Enemies patch by A red monk called Key are placed to Enemies folder. Some descriptions and gifs are corrected.
  • Enemies D53F, D57F and DFBF are having new description.
  • Fixed annoying bug when PLM jumps from you after clicking it. Actually, undoing some stuff.
  • PLM menu will not close when you switch to another program.
  • Add Graphic Set Tool is available to make new tilesets (more than 29 in total, up to 255).

03.06.12 Test release (2.76):
Project name changed to SMILE JX. Now me and Scyzer will update SMILE. Each of us is working on own project based on SMILE, but I hope we can join our efforts and send some features to each other. I prefer Co-op over Deathmatch.

  • Plugins folder is recreated to prevent runtime error 76 and it's having all existing plugins for SMILE (one).
  • Added support for Ceres & Debug patch. Now visibility arrays and area map will be saved to exact places where they are, even if you have repointed them.
  • Added special support for the Shutter2 enemy. Now Clicking on Normal GFX / Special GFX button will change value between Special GFX and Move once to make shutter move only after beign hit if Move once is selected.
  • Fixed delays in beam menu. Data at second delay in Charged form have nothing similar to delay. It's Beam Sounds, actually. Now cooldown after charge delay now having it's own scroll.
  • Now you can import and export title BG from Graphics Menu.
  • Changed text in pointers menu. Now it's clear what is Enemy Pop pointer and what is Enemy Allowed pointer.
  • Started graphic set expansion.

I really suggest to use any of 2 versions linked below:

Version 2.83 download link

Version 2.5 (old design) download link

EDIT: Warning! If you're using v2.80, please download also smileJX280fix and extract in SMILE folder. Add New Graphic Set feature will not work without these files!

squishy_ichigo

Quote from: JAM on June 20, 2012, 08:58:07 PM
Small cosmetic changes in Hotkeys and TestToom forms.

Small typo I assume, unless this is some sort of new feature. ;D

Good luck moving forward with this, I hope to see some collab with Scyzer in the future.

Scyzer

Quote from: JAM on June 20, 2012, 08:58:07 PM
I know, Scyzer is already working on improving SMILE, so I prorably will not add features she is working on. Instead of begging her to did this or that I'll better do this by myself. Because I can. =) If Scyzer likes these updates, I'll send a code to her and then Parlor Waffle (SMILE 2.75) + SMILE JX (2.8+) = SMILE RF (3.0). And even after that I hope to add some features to the program if I'd like to.

Actually, Parlor and SMILE 2.5 are both completely incompatible with RF. Not only has almost the entire program been rewritten, but the files that SMILE and Parlor use to run properly have been changed/removed as well. I could post an .exe of RF as it is right now, and only 3 other people would be able to use it.

That said, I can code stuff in if you let me know what it is to be done :P

Drewseph

I love this so far, but what do you mean by removed CRE?

Scyzer

Normally SMILE will not show CRE in any room that is set to use the Ceres area index, even if you change this in the rom. I guess JAM fixed it so JX will show the CRE properly.

JAM

Quote from: squishy_ichigo on June 20, 2012, 09:10:12 PM
Quote from: JAM on June 20, 2012, 08:58:07 PM
Small cosmetic changes in Hotkeys and TestToom forms.

Small typo I assume, unless this is some sort of new feature. ;D
Thanks for finding the bug. I think, I'll fix that bug in next release =)



Quote from: Scyzer on June 21, 2012, 06:33:59 AM
Actually, Parlor and SMILE 2.5 are both completely incompatible with RF. Not only has almost the entire program been rewritten, but the files that SMILE and Parlor use to run properly have been changed/removed as well. I could post an .exe of RF as it is right now, and only 3 other people would be able to use it.
Oh, I see. I didn't expect that. Yeah, as I saw from screenshots, you did a lot of work. I hope, RF supports custom enemies and PLMs.

Quote from: Scyzer on June 21, 2012, 06:33:59 AM
That said, I can code stuff in if you let me know what it is to be done :P
Well, the most wanted things for now are:
1. Support for non-standart states. Like, load all states with description from formatted text file instead of using internal values (to be able to add new to the list if you did them). Also, make state use 0, 1 or 2 bytes as argument. Example:

E612,1,Events
E629,1,Bosses
E640,0,Morphing Ball
E652,0,Morph & Missiles
...
FF80,2,Energy is > value

I haven't got currently how the state selection works in SMILE, but saw a lot of checks in the code. I can make custom states for a game (and already did some), but it's tedious to use without SMILE support.


2. Something that may be called Hex Tweaker. Subroutine that can load and apply hex tweaks from speciallly formatted text file. Instead of adding new tweak to game behaviour menu, it should be added by simple text editing.

X. PAL ROM support. Number X because there are A LOT more differences between NTSC and PAL version that I thought. Like every enemy DNA is shifted by $20 bytes (like enemy $D7FF is $D81F in PAL version) and same with PLMs. Although, all Level Layout is the same. Why they did that, 2 different versions, I have no idea. So, I may drop this for now.

In exchange, I'll send Add New Graphic Set subroutine to you and 1 more Super Tool I haven't did yet. If I'll experience any difficulties when making a new feature, I'll let you know for sure.


Quote from: Scyzer on June 21, 2012, 10:16:24 PM
Normally SMILE will not show CRE in any room that is set to use the Ceres area index, even if you change this in the rom. I guess JAM fixed it so JX will show the CRE properly.
Yeah, that's excactly what I did. It was annoying to see that removal even if you've replaced Space Station tileset by something else


P.S.

SUPER MISSILE
Select O and press X to fire

Yeah! Finally I can open green doors =)

Quote58

Okay, I know this is asking for a feature in smile, and that's usually considered bad. But if you can, Please allow SMILE to save screenshots in PNG as opposed to BMP.

MetroidMst

If SMALL could be combined with it somehow too, that would prove to be one of the bigger "upgrades" that could happen IMO, and the opinion of Drewseph as well.

FullOfFail

Quote from: JAM on June 20, 2012, 08:58:07 PM
If Scyzer likes these updates, I'll send a code to her and then Parlor Waffle (SMILE 2.75) + SMILE JX (2.8+) = SMILE RF (3.0).

I think some kind of collaboration like this would be best. Because from a end-user's perspective, I may end up having to switch between both to get whatever features I need at the time. We can argue all day and night about what should be in it, but for the community at large, I think it'd be best to have a single editor, verses many with many opposing functions.

P.JBoy

Could we add this to a Googlecode subversion or a github of some description?
...

Drewseph

Forgive me for continuing the "please add this"  but please add a feature which will fix the check sum of the rom so that it is never "bad" upon saving the rom

Kasel

This has received the Kasel seal of approval.  Well done, sir.

Katelyn


Zhs2

Alright, calm down with the feature requests and me-too approvals. JAM will let us all know when he is ready to make us all shit our pants in collective glory.

A_red_monk_called_Key

#14
JAM all the new stuff is great.
1) i just started testing it and got

run time error 55
file is already open

when i open graphics editor and save palette right a way.

2)also when you drag BTS on to the editor it displays a box the size of all visible BTS instead of one BTS block


3)if your interested i can make moving GIF images for the enemies

(i'll mod this post if i find any more)

Qactis

Wow fantastic work JAM! I've been waiting for the day when someone could pick up where Jathys left off and keep SMILE alive :D, much love from America.

Just to completely ignore Zeke and possibly be banned:

I think my biggest request would be a reworking of "+/- enemies/plms" feature. Either to be removed? Or, my idea, would be to have SMILE either let you set WHERE in the ROM (manually) where to repoint new headers for the room in question, OR to have SMILE auto-repoint the headers IF the number of enemies/plms you add will exceed the data limit where it currently is. I believe the biggest problems new users to SMILE have are not knowing how dangerous this option in SMILE is, and also exceeding the data limit on the palette and tile data/tiletable data.

Jathys

Nothing to contribute to the conversation today except for a "Yay!" that someone is actually picking up the ball and giving it a go.

JAM

Quote from: Shadow96 on June 23, 2012, 12:40:40 AM
Okay, I know this is asking for a feature in smile, and that's usually considered bad. But if you can, Please allow SMILE to save screenshots in PNG as opposed to BMP.
Yeah, this feature needs to be in SMILE too. But I know nothing about PNG compression method. Saving picture to BMP is easy because of raw format of BMP. Looks like, adding this feature will took A LOT of time. Like, over a month if do nothing except this one. Well, unless I find a source code of PNG compression. So, for now I will do other functions.

Similar idea is calculate the colors count and if it is below 256, use GIF instead of PNG. But I know nothing about GIF compression too.




Quote from: MetroidMst on June 23, 2012, 12:50:02 AM
If SMALL could be combined with it somehow too, that would prove to be one of the bigger "upgrades" that could happen IMO, and the opinion of Drewseph as well.
I'll see what I can do with this one. Currently, source code of SMALL wasn't released. So, the max I prorably can do is make SMILE run SMALL.




Quote from: Drewseph on June 24, 2012, 12:03:54 AM
Forgive me for continuing the "please add this"  but please add a feature which will fix the check sum of the rom so that it is never "bad" upon saving the rom
This one is easier to do than other requests. So, I prorably include this feature in next release.




Quote from: A_red_monk_called_Key on June 25, 2012, 01:03:56 PM
JAM all the new stuff is great.
Thank you =)

Quote from: A_red_monk_called_Key on June 25, 2012, 01:03:56 PM
1) i just started testing it and got

run time error 55
file is already open

when i open graphics editor and save palette right a way.
Oops! Looks like this is a bug causing by Adding New Graphic Set Feature! Thanks for finding this out.
EDIT: Caused wrong file number to select. Took 5 minutes to fix.

Quote from: A_red_monk_called_Key on June 25, 2012, 01:03:56 PM
2)also when you drag BTS on to the editor it displays a box the size of all visible BTS instead of one BTS block
Will look at this bug too.

Quote from: A_red_monk_called_Key on June 25, 2012, 01:03:56 PM
3)if your interested i can make moving GIF images for the enemies
Yeah, I'm interested =) Actually I had another idea to do with enemies, but is cool too. I'll contact you via PM.





Katelyn
Sorry, 404. Your image is not loading.





Quote from: Zhs2 on June 25, 2012, 02:33:30 AM
Alright, calm down with the feature requests and me-too approvals. JAM will let us all know when he is ready to make us all shit our pants in collective glory.
Yeah, now I know how it feels of hearing "please add this"... =) Well, I'm open for new ideas, but I guess I'll add something brand new only after version 2.83 or so (except for bugfixes and little tweaks). Why 2.83? I guess, it'll be when I'll already do everything I've got in mind.

Zhs2

Quote from: JAMWell, unless I find a source code of PNG compression.
It's simple if you know the places to look for PNG compression - there are silly utils like PNGOut all over the place. Finding the source to possibly integrate into your own executables is a good bit harder, sadly. Also, iirc, there is no gif compression. There is only the format.

Silver Skree

Quote from: JAM on June 26, 2012, 11:43:38 PM
Quote from: MetroidMst on June 23, 2012, 12:50:02 AM
If SMALL could be combined with it somehow too, that would prove to be one of the bigger "upgrades" that could happen IMO, and the opinion of Drewseph as well.
I'll see what I can do with this one. Currently, source code of SMALL wasn't released. So, the max I prorably can do is make SMILE run SMALL.

http://dfpercush.metroidconstruction.com/small/index.html

The SMAll library and source is packaged in the .zip as the .cpp file. It doesn't include the GUI, though, since that was a separate project of my brother's, but the library should be what you're looking for.

JAM

#20
Version 2.81 is out!

It contains only exe and changed files since last version. Apply to the same folder in where 2.80 is installed. Don't worry, exe of 2.80 will not be overwrited.

Changes since 2.80:

  • Fixed bug causing program crash when selecting no ROM.
  • Diagonal Electrical Outlet GIFs were remaked to make spawn PLMs to the right position.
  • Unused Item and Beam bits can be set in TestRoom options. Useful if your hack have new items.
  • Boss events are marked in regular event list. Now it's easy to set room state depending on boss event from any area.
  • Unused boss bits are marked like (main boss) or (mini boss). Bomb Torizo is placed in front on right check (finally!).
  • Certain events are marked in boss bits. Now it's easy to make room state depending on few events!
  • Fixed bug causing "Run time error 55" when saving palette in Graphic Editor. Now palettes can be saved again.
  • Fixed little bug of dragging slope. Now while dragging slope metroid icon with arrow will be shown as before.
  • Now you'll need to confirm your desire to Save Room. I did that to prevent clicking on Save Room icon when trying to click on ROM icon as these 2 icons are close to each other.
  • Max amount of Enemies to set in Enemy/PLM +/- window is set to $20 (instead of $32) because the game can't actually handle more than $20.
  • Now you can set 0 enemies and 0 items in Enemy/PLM +/- window.
  • ROM Checksum corrector was added, optimized, broken and fixed. No more [bad checksum] or CHSUM: FAIL messages.





I couldn't reply to all of you in the right time, so I'll do it now.


Quote from: P.JBoy on June 23, 2012, 05:52:20 AM
Could we add this to a Googlecode subversion or a github of some description?
I'll prorably do that. Thanks for idea. But I really hope that someone will actually use that code to modity the stuff.




Quote from: Jathys on June 25, 2012, 06:54:05 PM
Nothing to contribute to the conversation today except for a "Yay!" that someone is actually picking up the ball and giving it a go.



Now I am like you © LOST. I hope now you have a time and effords to finish your Trilogy project.


Quote from: Qactis on June 25, 2012, 06:41:38 PM
Wow fantastic work JAM! I've been waiting for the day when someone could pick up where Jathys left off and keep SMILE alive :D, much love from America.
Thank you =) I was waiting for that day too. But I didn't expected that I'll be that man.

Quote from: Qactis on June 25, 2012, 06:41:38 PM
I think my biggest request would be a reworking of "+/- enemies/plms" feature. Either to be removed?
Well, at least little bugfixed for now with ability to set enemies to 0.

Quote from: Qactis on June 25, 2012, 06:41:38 PM
Or, my idea, would be to have SMILE either let you set WHERE in the ROM (manually) where to repoint new headers for the room in question, OR to have SMILE auto-repoint the headers IF the number of enemies/plms you add will exceed the data limit where it currently is.
As for auto-repoint, there is a little problem. How to teach SMILE to calculate the limit correctly? For example, we have 5 enemies in the room. I can tell SMILE to not exceed starting value. But what if we reduced enemy amount to 3 and then we want to add 1 more enemy? Actual limit before the next room's enemy data starts is 5, but current limit is 3. If not exceed current value, then after reducing amount it can't be set back.
So, there'll manual repoint (as you can do with Level Data) in next versions...

Quote from: Qactis on June 25, 2012, 06:41:38 PM
I believe the biggest problems new users to SMILE have are not knowing how dangerous this option in SMILE is, and also exceeding the data limit on the palette and tile data/tiletable data.
Yeah, you're right. Most people aren't using 2 basic rules. Before serious screwup, at least:
1. Make backups every time.
2. If you're about to add something, repoint data first.
I should something to do with tiletables too.






Quote from: Silver Skree on June 27, 2012, 08:03:51 PM
The SMAll library and source is packaged in the .zip as the .cpp file. It doesn't include the GUI, though, since that was a separate project of my brother's, but the library should be what you're looking for.
Thanks for the link! I forgot about source code release with actual program.


EDIT: I forgot to include 2 binary patches. Please redownload v2.81 using this link


FPzero

I'll be watching this thread.  These and future updates may be enough to get me back and trying to put out something small.  Absolutely no guarantees but we'll see.

P.JBoy

Quote from: JAM on July 01, 2012, 11:10:46 PM
Quote from: P.JBoy on June 23, 2012, 05:52:20 AM
Could we add this to a Googlecode subversion or a github of some description?
I'll prorably do that. Thanks for idea. But I really hope that someone will actually use that code to modity the stuff.
Oh I'll definitely end up adding to it; but it's very useful just to see exactly what changes are made too
...

tbolt76

Its very cool but there is a few bugs to iron out. like adding new graphics set  completly ruins the game and you get a runtime error while even trying to start smile again.  thats all the bugs i see for now