Jump to content

Prologue replacement woes


Descartes
 Share

Recommended Posts

Let me start off by apologizing for being an idiot. And please excuse me if this post sounds like a rant. Or an introduction. It's both, sorta.

If failing to code something can be compared to beating your head against a wall, I've eaten at least a ton of Sheetrock by now. And what I'm doing isn't even that hard. Allegedly. I wouldn't know, because I can't even do it. I'm trying to replace the prologue with my own map. I just don't know what I'm doing wrong. I need help in a bad way, and this is coming from the type of guy who won't even ask employees in general stores to help him find stuff if he can help it, and it's their damned job to do that. I'd rather walk around aimlessly until I found it. So why would I ask completely non-obligated strangers to help me if I didn't think it was absolutely vital to my mission? Well, if beating my head against the wall was a viable solution to my problem I would keep doing it. But I don't see myself making any progress unless someone helps me.

Hold up. Put the links away. I've already read them all. Up and down. Side to side. For hours. Days, maybe. I started with Blazer's ultimate tutorial, and read that all the way through. Most of it didn't apply to me (yet) because I'm still stuck on the stumbling block. I've read Arch's guides to chapter and event construction. Several times. All of them. I still have it open in like 6 or 7 different tabs as I type this. I've read other guides as well, but these past few hours have been a blur and that's making it pretty damned hard to recall the titles of those guides.

So, if anyone wants to help, the best way would be to follow my steps and identify which one of these is the cock-up that's screwing up my build. I usually do these steps in whatever order is the most convenient at the time. Here are the steps I took to my most recent failure, in chronological order.

1. I modified this entry in Nightmare
https://gyazo.com/dd182c29bf395ded039e65a1c3f504bd
08D90000 is where I planned to put this map.

2. I edited the Chapter Data so I had the right tiles and all that. I also changed the player phase music to the Fire Emblem Theme (looped version).
https://gyazo.com/b0fac3d23bf71288b7e26cdcc314f79f
And yes, they are the right tiles. At least I think so. Enough to put money on it.

3. Using Event Assembler, I slapped my test chapter into some free space right after my map.
https://gyazo.com/df1140636b680ace33bb4a6350c54220
EA did it's thing without giving me any errors. Although I wish I could say the first 2 hours I spent wrestling with this project went as smoothly.
Here's the code I used:

#define DISABLE_TUTORIALS
#include EAstdlib.event

EventPointerTable(0x06,Pointers)


ORG 0xD90090 // free space, but maybe the syntax is off
Pointers:
POIN Turn_events
POIN Character_events
POIN Location_events
POIN Misc_events
POIN BallistaData BallistaData
POIN Bad Bad Bad Bad
POIN Good Good Good Good
POIN BeginningScene EndingScene

Bad:
//Didn't spawn any enemies because I couldn't even get this other

crap to work. Hopefully that's not my issue here; I should still be

able to play the map with only one allied unit if the objective is

to seize a gate, right?
UNIT

Good:
UNIT Eliwood Eliwood Eliwood 20 [0,0] [0,1] [ironSword] NoAI
//hopefully the correct syntax to spawn me an OP dude.
//Eliwood's good, right? Right?
UNIT

Turn_events:
TURN 0x0 BeginningScene [1,0] 0x0 0x0
TURN

Character_events:
CHAR

Location_events:
Seize(14,9) //seize that stupid house
LOCA

Misc_events:
CauseGameOverIfLordDies
AFEV

BeginningScene:
LOU1 Eliwood
ENDA

EndingScene:
MNCH 0x00 // if this works I want to play this map on loop again and

again and again to admire my handiwork.
ENDA

BallistaData:
BLST


MESSAGE Events end at offset currentOffset
//The map for this chapter is at offset: 00D90000




4. I put the map in. It worked.
https://gyazo.com/0baeebc10356560799183f58f37235fa
By way, this is the map right here: https://gyazo.com/bb912c35b1a33a634577b09c0703971e
Pretty spartan, I know. But I was just trying to get a feel for level editing. Maybe once the initial thing worked, I could remake it and code an event in the house or something. It's just a sandbox, really.

5. Boot that sucker up and see if it works. It doesn't.
https://gyazo.com/92f31b7198c42c965df9ae2c1538b9c1
Right after creating a Tactician named Mark for the nth time, and seeing the prologue title for the (n+1)th time, and being greeted by the familiar black screen of shitty hacking once again, I get a clean backup, open up all the editors again, and eat another mouthful of drywall. Maybe if I repeat the same steps, but in a different order, eventually I'll get it right. R-right?

Probably not.

But once I get past this, I'm confident I can teach myself the rest of what I need to know from the reading materials already provided. I can't do it alone, though. Not right now.

I've finally gotten around to creating my own overhaul mod. I've got a shitload of assets already. Concept art. Scripts. Storyboards, maps; I even made some sprites. And it's all about to go to waste unless I can get past this one hurdle right here. It's a sunk cost dilemma I'm facing here. Should I give up and waste the hundreds of hours I've already invested in this project? Just because I can't do what others have clearly proven isn't as hard as I think it is? Am I gonna be that guy who loses to Glass Joe? Hell no. I've got a game to make, for all of you. Damn, that was corny. I hope my game isn't like that.

So here's my plea: save this poor dumbass and his video game.

That, or pass the drywall. I'm feeling hungry.

Link to comment
Share on other sites

Are you sure that the location you put the events at was actually free space? If your steps are in order, you might've inserted the map and overwrote your event stuff.

Putting your map at 0x00D90000 and your events at 0x00D90090 seems close to me, as, after messing with maps of my own, I find that my own prologue replacement map for FE8 (Which is only 15 tiles by 10 tiles, smaller than your map) takes from 0x00B2A610 to 0x00B2A740. Not sure if that's an issue.

Also, your screenshot for the map inserter says 22 by 15, whereas your mapping software says 21 by 14.

Link to comment
Share on other sites

BeginningScene:

LOU1 Eliwood

ENDA

First of all, you need an ENUN after the LOU1. Also, it looks like your map has been inserted just fine, but you haven't used an OOBB code in your events or used a "fade to map" opening in the Chapter Data Editor.

In addition, your UNIT syntax is completely wrong... Why didn't you use the template shown to you in the tutorials? It should be like this:

UNIT Eliwood Lord Eliwood Level(20,Ally,False) [24,10] [24,10] [IronLance] 
Also, your screenshot for the map inserter says 22 by 15, whereas your mapping software says 21 by 14.

This probably isn't a problem since the map inserter counts from 1 whereas the mapping software counts from 0.

Edited by Agro
Link to comment
Share on other sites

Thanks for the quick replies. Thanks to those words and a couple hours of sleep, I've been able to move the state of this project from hopelessly unplayable to promisingly unplayable. That doesn't seem like much, but it means a ton.

Are you sure that the location you put the events at was actually free space? If your steps are in order, you might've inserted the map and overwrote your event stuff.

Putting your map at 0x00D90000 and your events at 0x00D90090 seems close to me, as, after messing with maps of my own, I find that my own prologue replacement map for FE8 (Which is only 15 tiles by 10 tiles, smaller than your map) takes from 0x00B2A610 to 0x00B2A740. Not sure if that's an issue.

Also, your screenshot for the map inserter says 22 by 15, whereas your mapping software says 21 by 14.

You're inserting the map at 0xD90000, but your events start at 0xD90090. Are you sure you're not accidentally overwriting something?

This very well might have been the issue. I moved the map to D80000 and started the events at D90000 instead

First of all, you need an ENUN after the LOU1. Also, it looks like your map has been inserted just fine, but you haven't used an OOBB code in your events or used a "fade to map" opening in the Chapter Data Editor.

In addition, your UNIT syntax is completely wrong... Why didn't you use the template shown to you in the tutorials? It should be like this:

UNIT Eliwood Lord Eliwood Level(20,Ally,False) [24,10] [24,10] [IronLance] 

This probably isn't a problem since the map inserter counts from 1 whereas the mapping software counts from 0.

Riiiiiight. The fade-to-black stuff. The prologue has fade to black instead of fade to map by default and I never changed that.

Also I swear I used the syntax in those tutorials, but EA kept giving me errors and refusing to write my data to the ROM, so I kept changing random words to other words until EA stopped being annoying. In other words, all that head-banging knocked something loose up there.

Anyway, the game is no longer freezing after the Prologue. Interestingly enough, after inputting the tactician information, the game sends me back to the title screen and won't even load the map. That's probably because I didn't put any enemies on it or something. Or maybe it's the admittedly stupid ending scene I wrote. I'll find out soon enough. Because I'm still not entirely sure my problems are solved, I'm not going to tag this as solved. I'll be back in a few hours with an update.

EDIT: It didn't take hours for me to realize that I'm actually no better off. Why the hell is the game restarting after the tactician screen? Does that mean I have to disable it?

Edited by Descartes
Link to comment
Share on other sites

The game resetting is pretty much equivalent to it freezing. It means something got overwritten, and the game doesn't know what to do. These things are pretty tricky to fix unless you know what you overwrote. It might be a good idea to try the map and events on a fresh ROM.

Link to comment
Share on other sites

Okay. After screwing around with insertion points, I managed to get this far: https://gyazo.com/37f4eff8ffe38d90098afdcde67b07c2

I decided to put the event in at 00D90000 and the map deeper in, at 00DA0000. No more black screen of death, I guess. Traded it for a green screen of confusion instead.

Oddly, as I was typing this post out, the screen turned white. Completely. Going to wait around and see if it changes back.

-8 minutes of holding the speed button later-

It didn't. https://gyazo.com/16440650f8b8ab41256c645430ba0a79

Here's an idea: can I see someone else's Prologue replacement chapter? I think I can reverse engineer it and create a much simpler, modular format for all the chapters I want to add. The more commented lines there are, the easier that would become. If you're not comfortable posting it in this thread for whatever reason, you could also PM it to me.

Link to comment
Share on other sites

Okay, start over. Get a clean ROM. By the looks of it, your ROM is toast.

I'll explain and show you what I would do. Not everyone does it this way. I might do it a way someone might not like but this is my opinion and way that I like to do it and you can choose to follow it if you want. I still have lots to learn as well but I can help you this much.

So for me I'd go to the end of the ROM and find free space like this. And on a clean ROM you should have 01000000 as the first thing at the end of the ROM like this.

R1Me12X.png

You don't have to use the end of the ROM but for this example I am going to (because this is how I'd do it).

I also just want to show you the map I'm inserting (definitely not my best work):

jZHplYE.png

Next step, I'd insert my map there. For this I used TIled to make my map and I used Tiled Map Inserter to insert it.

XYOMbli.png

This is the part that someone would argue with me that it's not the best method to fix this issue, but it works 100% for me. And once again, you don't have to do everything I do. But it works and that's what matters to me.

So for some reason when you make editions to your ROM in one program, and then make editions in a different program, it'll erase the changes you previously made in that last program. In your case it appears as though that black screen is showing up either because A: You are overwriting it. or B: It is getting erased on you. So because I'm showing you a way to prevent any issues like that happening. I'd make a copy of ROM.

njAMno7.png

I don't know why, but for some reason when you copy and paste your ROM it seals the changes you've made to it. I do this after inserting a map or how ever many I have lined up to be inserted.

Then I head over to nightmare and do the obvious (change the tilesets and map pointers):

iTCQn92.png

+08000000 to wherever I inserted my map

5M1amG4.png

After that I'll go back to my Hex editor and see how much data my map used up.

KNYN5PI.png

Just for my the sake of my ROM's safetly, I'll make another copy of it.

So for this my map wrote until 01000290, so I'm gonna make sure for my events it's going to write after that.

Here's my events (and this is just an example):

[spoiler=Events]

#define DISABLE_TUTORIALS
#include EAstdlib.event

EventPointerTable(0x06,Pointers)

ORG 0x010002D0

Pointers:
POIN Turn_events
POIN Character_events
POIN Location_events
POIN Misc_events
POIN TrapData TrapData
POIN Bad Bad Bad Bad
POIN Good Good Good Good
POIN Opening_event Ending_event

Good:
UNIT 0x01 0x01 0x00 Level(1, Ally, 0) [5,5] [5,5] [0x00] NoAI
UNIT 0x02 0x03 0x00 Level(1, Ally, 0) [4,4] [4,4] [0x00] NoAI
UNIT 0x03 0x02 0x00 Level(1, Ally, 0) [6,6] [6,6] [0x00] NoAI
UNIT 0x04 0x0A 0x00 Level(1, Ally, 0) [4,6] [4,6] [0x00] NoAI
UNIT 0x05 0x13 0x00 Level(1, Ally, 0) [6,4] [6,4] [0x00] NoAI
UNIT 0x0E 0x19 0x00 Level(1, NPC, 0) [9,5] [9,5] [0x00] Guard
UNIT

Bad:
UNIT

Turn_events:
TurnEventPlayer(0x0,Opening_event,1)
End_MAIN

Character_events:
CharacterEvent(0x0,Talk1,0x0,Rebecca)
End_MAIN

Location_events:
End_MAIN

Misc_events:
CauseGameOverIfLordDies
End_MAIN

TrapData:
End_MAIN

Opening_event:
OOBB
LOU1 Good
ENUN
ENDA

Ending_event:
ENDA

// Events
Talk1:
TEX1 0x815
REMA
TurnAlly(0x0E)
ENDA


// Manual Movement

// Scripted Fights

// Units

// Shop Data

MESSAGE Events end at offset currentOffset

I wrote it to 010002D0 because it wasn't going to overwrite anything. So let's test it now:

I5B9KDb.png

It works! And just for fun let's test my Character_events:

H5kAzcU.png

Yup, works.

I hope my example helped.

Edited by Avril Lavigne
Link to comment
Share on other sites

Thanks Avril, this just might be what I need. I've got a playable prologue now. Having issues with the tiles being wrong, but that's a much easier fix than any problem I've encountered so far. Every other guide says that expansions are difficult to work with, but this is MUCH easier than randomly overwriting stuff in the middle of potentially important data.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...