Jan 21, 2012 at 5:30 PM
Senior Member
"Ha! Ha! Ha! Mega Man is no match for my Mimiga Man!"
Join Date: Jan 21, 2011
Location:
Posts: 249
Anyone ever figure out how to set the exe to read music data from a separate (.dat maybe?) file? I'm sure doing so would allow one to have just about as many BGMs as they wanted.

Something like

[ 0000 0010 0000 0790 ] 0x10
( dword : list start ) ( dword : list stop )
[ 0014 0000 03C0 0000 21E0 ] 0x14
( word : track # ) ( dword : start address ) ( dword : stop address )

and the rest would just be the raw sound data. the exe would read the track from the file, then dump it into a reserved area of memory (where the songs previously were, perhaps)

That should free up a ton of room, I think. Enough to perhaps, make the bullet & effect memory tables larger. Or add a weather system. ^_^
 
Jan 21, 2012 at 5:34 PM
Been here way too long...
Discord Group Admin
Org Discord Moderator
"Life begins and ends with Nu."
Join Date: Oct 18, 2011
Location:
Posts: 2337
I believe that it is flag 0200 (run script on death).
Also, how does one stop your gun from moving up and down while walking?

Hey, I just noticed this now, but I'm almost completely positive that is a flag you put on enemies so when you kill them they run their event number. I want it so when you die at a certain point, instead of actually dieing, it restores your health and does a bit of script. How would one do that?
 
Jan 21, 2012 at 5:57 PM
Senior Member
"Ha! Ha! Ha! Mega Man is no match for my Mimiga Man!"
Join Date: Jan 21, 2011
Location:
Posts: 249
Dunc2403 said:
I want it so when you die at a certain point, instead of actually dieing, it restores your health and does a bit of script. How would one do that?

I had thought you wanted something like that. Guess I was right. I already have done that for my own game. Although this is, hrm, kind of embarrassing... as it's been almost a year since I worked on that function, I do not recall where in the exe it was located. It did require some assembly, though. I use it for a reserve tank function. Basically when you die, it runs a specific TSC function in the header, then heals the player by a specific amount (how much is in the reserve tank), then restores control back to the player. The only downside is that because it pauses the game with <PRI, if you end up in a situation where you would die anyways (such as deathtraps), you end up dying twice. I haven't yet gone to the trouble of setting up the reserve tank system as a set of ASM functions, so there's no way to tell how much damage you took when you died the first time.

How to get the first Reserve Tank in CS:R
The reserve tank is located in the Sand Zone: Low Barrens map that Jenka lives in. You have to kill Omega first to remove the sunstone, then exit through the passage and ride the lift block to get to higher ground. Then you continue left along platforms chained to the ceiling until you reach the end of the pillars, then you go up and begin moving to the right. At the end of the stretch is the reserve tank. The right-hand exit from the room that contains the chest will take you back to Jenka's doorstep, placing you back where you started.

If someone can jog my memory as to where the death functions are in the exe, I'll be happy to post the changes for you.
 
Jan 22, 2012 at 5:03 AM
Senior Member
"Ha! Ha! Ha! Mega Man is no match for my Mimiga Man!"
Join Date: Jan 21, 2011
Location:
Posts: 249
Here you go:

Code:
CPU Disasm
Address   Hex dump		  Command								  Comments
00419B03  |.  0FBF05 CCE649 MOVSX EAX,WORD PTR DS:[49E6CC]
00419B0A  |.  85C0		  TEST EAX,EAX
00419B0C  |.  7F 05		 JG SHORT 00419B13
00419B0E  |.  E9 5D9E0700   JMP 00493970


CPU Disasm
Address   Hex dump		  Command								  Comments
00493970   \68 18150000	 PUSH 1518								; Checks for flag 5400
00493975	E8 B6AFF7FF	 CALL 0040E930							; Check Flag (Returns 1 or 0)
0049397A	83C4 04		 ADD ESP,4
0049397D	85C0			TEST EAX,EAX
0049397F	74 23		   JE SHORT 004939A4
00493981	68 22150000	 PUSH 1522								; Checks for flag 5410
00493986	E8 A5AFF7FF	 CALL 0040E930							; Check Flag (Returns 1 or 0)
0049398B	83C4 04		 ADD ESP,4
0049398E	85C0			TEST EAX,EAX
00493990	75 12		   JNE SHORT 004939A4
00493992	66:C705 CCE6490 MOV WORD PTR DS:[49E6CC],0			   ; Set Player Health to 0
0049399B	90			  NOP
0049399C	90			  NOP
0049399D	90			  NOP
0049399E	90			  NOP
0049399F	90			  NOP
004939A0	90			  NOP
004939A1	90			  NOP
004939A2	EB 23		   JMP SHORT 004939C7
004939A4	6A 01		   PUSH 1
004939A6	6A 11		   PUSH 11
004939A8	E8 93CCF8FF	 CALL 00420640							; Play sound
004939AD	6A 40		   PUSH 40
004939AF	68 00140000	 PUSH 1400
004939B4	8B0D 58E64900   MOV ECX,DWORD PTR DS:[49E658]
004939BA	51			  PUSH ECX
004939BB	8B15 54E64900   MOV EDX,DWORD PTR DS:[49E654]
004939C1	52			  PUSH EDX
004939C2	E8 89B7FDFF	 CALL 0046F150							; Play death explosion
004939C7	83C4 10		 ADD ESP,10
004939CA	6A 28		   PUSH 28								  ; #40
004939CC	E8 BFDFF8FF	 CALL 00421990							; Call TSC Event
004939D1  ^ E9 4061F8FF	 JMP 00419B16

Code:
(head.tsc)
#0040
<KEY<CMU0000<FLJ5400:0046<EVE0047

{some stuff here obviously, but you don't need it}


</// Reserve Tank activated because Quote died
#0046
<FLJ5410:0047
<WAI0030<PRI<SOU0039
<FLJ5430:0050<FLJ5429:0051<FLJ5428:0052<FLJ5427:0053<FLJ5426:0054
<FLJ5425:0055<FLJ5424:0055<FLJ5423:0057<FLJ5422:0058<FLJ5421:0059
<FLJ5420:0060<FLJ5419:0061<FLJ5418:0062<FLJ5417:0063<FLJ5416:0064
<FLJ5415:0065<FLJ5414:0066<FLJ5413:0067<FLJ5412:0068<FLJ5411:0069
<CLO<EVE0047<END
#0047
<HMC<WAI0040<PRI
<WAI0040<CMU0003<MSG
You have died.<NOD<CLRWant to retry?<YNJ0049<CLO
<FAO0001<WAI0050<FLJ0431:0048<INI<END

#0048
<SMC<LDP<END

#0049
<CLO<FAO0004<ESC

#0050
<WAI0001<LI+0005<SOU0020<FL-5430<FL+5429
#0051
<WAI0001<LI+0005<SOU0020<FL-5429<FL+5428
#0052
<WAI0001<LI+0005<SOU0020<FL-5428<FL+5427
#0053
<WAI0001<LI+0005<SOU0020<FL-5427<FL+5426
#0054
<WAI0001<LI+0005<SOU0020<FL-5426<FL+5425
#0055
<WAI0001<LI+0005<SOU0020<FL-5425<FL+5424
#0056
<WAI0001<LI+0005<SOU0020<FL-5424<FL+5423
#0057
<WAI0001<LI+0005<SOU0020<FL-5423<FL+5422
#0058
<WAI0001<LI+0005<SOU0020<FL-5422<FL+5421
#0059
<WAI0001<LI+0005<SOU0020<FL-5421<FL+5420
#0060
<WAI0001<LI+0005<SOU0020<FL-5420<FL+5419
#0061
<WAI0001<LI+0005<SOU0020<FL-5419<FL+5418
#0062
<WAI0001<LI+0005<SOU0020<FL-5418<FL+5417
#0063
<WAI0001<LI+0005<SOU0020<FL-5417<FL+5416
#0064
<WAI0001<LI+0005<SOU0020<FL-5416<FL+5415
#0065
<WAI0001<LI+0005<SOU0020<FL-5415<FL+5414
#0066
<WAI0001<LI+0005<SOU0020<FL-5414<FL+5413
#0067
<WAI0001<LI+0005<SOU0020<FL-5413<FL+5412
#0068
<WAI0001<LI+0005<SOU0020<FL-5412<FL+5411
#0069
<WAI0001<LI+0005<SOU0020<FL-5411<FL+5410
#0070
<RMU<MSG
Reserve Tank depleted.<NOD<CLO<SMC<END

I left in the reserve tank code to give you an idea of what you can do with this.
 
Jan 25, 2012 at 6:56 AM
Neophyte Member
"Fresh from the Bakery"
Join Date: Jan 25, 2012
Location: Gothenburg, Sweden
Posts: 9
Age: 26
Hey. I am going to start modding again and i need a good modding tool. Since i know that there have been some changes in lots of tools. i am asking for the latest version of Sue's Workshop that is able to mod with.

If anyone can provide me with a link i'd be grateful. i've searched the forum since last night. (been awake all night)

Well please if you have it. Post it here or send a pm with link in it.

-SpikedArrow
 
Jan 25, 2012 at 9:53 AM
Senior Member
"Huzzah!"
Join Date: Dec 7, 2011
Location: Australia. In Bob Katter's secret techno-dungeon.
Posts: 206
Age: 32
www.cavestory.org/downloads_editors.php

Use version 0.3A. If it doesn't work, try version 0.3C

(New is now always better.)
 
Jan 25, 2012 at 10:17 AM
Neophyte Member
"Fresh from the Bakery"
Join Date: Jan 25, 2012
Location: Gothenburg, Sweden
Posts: 9
Age: 26
well i've tried making mods in 0.3a and c. but none of them give me a good result. both either corrupts data, or erases script from my custom maps. or goes back to the original.
 
Jan 25, 2012 at 10:19 AM
Senior Member
"Huzzah!"
Join Date: Dec 7, 2011
Location: Australia. In Bob Katter's secret techno-dungeon.
Posts: 206
Age: 32
Ah! Make sure you remove 'READ ONLY' from ALL Cave Story files! This is a common problem.
 
Jan 25, 2012 at 11:20 AM
Neophyte Member
"Fresh from the Bakery"
Join Date: Jan 25, 2012
Location: Gothenburg, Sweden
Posts: 9
Age: 26
ah thanks im able to get a good result now. i'm looking for someone to test the mod when i'm done and give like say bugs. cuz im really bad in finding that kinds of things.
 
Jan 25, 2012 at 11:42 AM
Not COMMA
Discord Group Moderator
"..."
Join Date: May 9, 2011
Location:
Posts: 350
Age: 26
You should be using Cave Editor
I'll help you test it.
 
Jan 25, 2012 at 9:56 PM
Professional Whatever
"Life begins and ends with Nu."
Join Date: Jan 13, 2011
Location: Lasagna
Posts: 4481
I can help too. If you need any help with coding/testing, just ask.

Also shouldn't this be in quick modding/hacking answers?
 
Jan 25, 2012 at 10:07 PM
In my body, in my head
Forum Moderator
"Life begins and ends with Nu."
Join Date: Aug 28, 2009
Location: The Purple Zone
Posts: 5998
yeah I guess it should
 
Jan 26, 2012 at 5:55 AM
Senior Member
"Huzzah!"
Join Date: Dec 7, 2011
Location: Australia. In Bob Katter's secret techno-dungeon.
Posts: 206
Age: 32
You should be using Cave Editor
I'll help you test it.

I... half agree with this sentiment. Cave Editor has definite advantages, but I don't think it's a superior editor to Sue's Workshop if the mod doesn't have assembly hacks. There are so many hidden pitfalls in Cave Editor that even experienced users screw their mods up.

Sue's Workshop has one bug to watch out for:
If you run cave story in test mode from within the editor, then forget about it, (fail to close it), .exe changes will not be commited when saving. Unfortunately, SW doesn't warn player enough when they casually close the editor window.

End result: orphaned map files. It's technically possible to restore them, but it's a painful process.

Sue's Workshop isn't a piece of junk... It's just simple. WHICH MAKES IT MORE LOVABLE!
 
Jan 26, 2012 at 7:14 AM
Neophyte Member
"Fresh from the Bakery"
Join Date: Jan 25, 2012
Location: Gothenburg, Sweden
Posts: 9
Age: 26
Well i've started the project and i'll post some pictures of what i've done in the "ideas and development" tab when i get the opportunity to do so.
Also when i am done with the spawners, secret spots, trigger areas then i'll give a first view to the people that want to.

Oh. one more thing. Does anyone know how i set a trigger to dissapear after first use? never got it to work. tried like 11 methods now :p
post or pm if you know how
 
Jan 26, 2012 at 10:58 AM
In my body, in my head
Forum Moderator
"Life begins and ends with Nu."
Join Date: Aug 28, 2009
Location: The Purple Zone
Posts: 5998
<DNP might be handy
and if it needs to stay gone you have to use flags.
 
Jan 26, 2012 at 8:16 PM
Veteran Member
"The Ultimate Sword of Extraordinary Magnitude"
Join Date: Jan 26, 2012
Location:
Posts: 292
Hi guys,

newcomer here. I've been a fan of the game for a long time now (as most people here, naturally) and recently got Cave Story Plus.

I have two questions on my mind: can I use any of the editors to screw around with the Wind Fortress and Nemesis Run? I figure it might be fun to enginer some variations (like reducing HP in Wind Fortress but giving myself Super Missiles).
I tried copying the folders and adding the exe for the original freeware game (so I could select it with the editor) but it didn't work.

The other thing is, I know other mods can be added under challenges. I've tried adding Curly Brace's Story
http://www.cavestory.org/forums/threads/945/
and A Lost Land
http://www.cavestory.org/forums/threads/2196/

It didn't work either. I guess they employed ASM editing? Curly Brace's Story starts in the initial room, but you can't see anything and Curly immediately says her line upon inspecting quote. A Lost Land seems to start like the normal game (Kazuma talking and all that).

Thanks in advance!
 
Jan 27, 2012 at 2:09 AM
Been here way too long...
"Life begins and ends with Nu."
Join Date: Jan 4, 2008
Location: Lingerie, but also, like, fancy curtains
Posts: 3054
The problem you've got is that CS+ is not CS.
I'm not sure if there is mod porting twixt them yet.

And no, you can't edit wind fortress/nemmy run with sue's or ce. Noxid's editor should work, but it can't save changes yet, so that's kinda pointless.
Sorry!
 
Jan 27, 2012 at 3:33 AM
Veteran Member
"The Ultimate Sword of Extraordinary Magnitude"
Join Date: Jan 26, 2012
Location:
Posts: 292
Well, I know simple mods can be used in CS+, I followed instructions for that found in this thread:
http://www.cavestory.org/forums/threads/3706/

What I'm wondering is whether the specific mods I tried to use with it are completely unfeasible for this purpose (due to ASM hacking) or if there's just some small fix I need to do for them to play properly.

Ah, so there's no editing them... unfortunate. Perhaps Noxid's editor can be used to view them so that they can more easily be recreated in CE (forgetting about the new enemies and boss in Wind Fortress, naturally)?
 
Jan 28, 2012 at 11:43 AM
Junior Member
"It's dangerous to go alone!"
Join Date: Jan 27, 2012
Location:
Posts: 33
I've got a problem with a script. I've created a basic room with a door that should transport you to the Start Point (There is no way of going back yet so it's just a <TRA command) and a chest that should display a message when you open it. The room has also been set as the starting point, so if you start the game you spawn in that room.

The problem is that when I start the game the chest event runs automatically (the message is displayed) and the screen goes black, although you can still hear Quote moving around when buttons are pressed. I just have no idea where he is.

I looked at some of the useful threads, checked for the <END tags, changed the chest code a couple of times, even added the as of now useless #0090 to #0095 commands (since you can't get back into the room once you've left it) but it still doesn't work.

Also, when there was just the door event the map worked just fine.

Closed chest: ID: 100: Flags: 6000: Event #: 200
Open chest: ID: 100: Flags: 2800: Event #: 201
Door: ID: 0 Flags: 2000: Event #: 100

There are no commands/flags/anything from other maps referencing to this map. Code below.

Code:
#0090
<MNA<CMU0008<FAI0000<END
#0091
<MNA<CMU0008<FAI0001<END
#0092
<MNA<CMU0008<FAI0002<END
#0093
<MNA<CMU0008<FAI0003<END
#0094
<MNA<CMU0008<FAI0004<END
#0095
<CMU0008<FAI0001<END
#0100
<TRA0013:0093:0010:0010
<END
#0200
<PRI<FLJ0100:0201<FL+0100
<SOU0022<CNP0200:0021:0000
<MSGA click is heard.<NOD<CLO<END
#0201
<PRI<MSGNothing happened...<NOD<CLO<END
 
Top