Descartes Posted August 22, 2015 Share Posted August 22, 2015 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 Nightmarehttps://gyazo.com/dd182c29bf395ded039e65a1c3f504bd08D90000 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/b0fac3d23bf71288b7e26cdcc314f79fAnd 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/df1140636b680ace33bb4a6350c54220EA 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.eventEventPointerTable(0x06,Pointers)ORG 0xD90090 // free space, but maybe the syntax is offPointers:POIN Turn_eventsPOIN Character_eventsPOIN Location_eventsPOIN Misc_eventsPOIN BallistaData BallistaDataPOIN Bad Bad Bad BadPOIN Good Good Good GoodPOIN BeginningScene EndingSceneBad://Didn't spawn any enemies because I couldn't even get this othercrap to work. Hopefully that's not my issue here; I should still beable to play the map with only one allied unit if the objective isto seize a gate, right?UNITGood: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?UNITTurn_events:TURN 0x0 BeginningScene [1,0] 0x0 0x0TURNCharacter_events:CHARLocation_events:Seize(14,9) //seize that stupid houseLOCAMisc_events:CauseGameOverIfLordDiesAFEVBeginningScene:LOU1 EliwoodENDAEndingScene:MNCH 0x00 // if this works I want to play this map on loop again andagain and again to admire my handiwork.ENDABallistaData:BLSTMESSAGE 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/0baeebc10356560799183f58f37235faBy way, this is the map right here: https://gyazo.com/bb912c35b1a33a634577b09c0703971ePretty 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/92f31b7198c42c965df9ae2c1538b9c1Right 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. Quote Link to comment Share on other sites More sharing options...
Zane Avernathy Posted August 22, 2015 Share Posted August 22, 2015 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. Quote Link to comment Share on other sites More sharing options...
Agro Posted August 22, 2015 Share Posted August 22, 2015 (edited) 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 August 22, 2015 by Agro Quote Link to comment Share on other sites More sharing options...
Primefusion Posted August 22, 2015 Share Posted August 22, 2015 You're inserting the map at 0xD90000, but your events start at 0xD90090. Are you sure you're not accidentally overwriting something? Quote Link to comment Share on other sites More sharing options...
Descartes Posted August 22, 2015 Author Share Posted August 22, 2015 (edited) 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 August 22, 2015 by Descartes Quote Link to comment Share on other sites More sharing options...
Primefusion Posted August 22, 2015 Share Posted August 22, 2015 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. Quote Link to comment Share on other sites More sharing options...
Descartes Posted August 24, 2015 Author Share Posted August 24, 2015 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. Quote Link to comment Share on other sites More sharing options...
Avril Lavigne Posted August 24, 2015 Share Posted August 24, 2015 (edited) 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. 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): 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. 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. 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): +08000000 to wherever I inserted my map After that I'll go back to my Hex editor and see how much data my map used up. 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: It works! And just for fun let's test my Character_events: Yup, works. I hope my example helped. Edited August 25, 2015 by Avril Lavigne Quote Link to comment Share on other sites More sharing options...
Descartes Posted August 24, 2015 Author Share Posted August 24, 2015 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. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.