Basic Questions & Answers thread NEWBIES: Start here!
Posted 03 October 2015 - 07:11 PM
This, and another tip that means more work but that it will worth it. If you 'break' the sprites, you can create additional blank tiles so you can decrease the amount of tiles loaded even futher. I will post the same example since this is one case that really show the benefit of it.
Of course that this means editing the art file, but in frames like this one you can load up to 4 tiles less than without breaking it. It also means a more complex mapping, but if you're using SonMapEd, you have no excuse to not do it. I do have to say that I don't know how optimized the S3 sprites are, but at least in S1 you can save a lot of space with this.
I will also stop being an asshole and accept that I need help with some issue with porting the bloody DMA Queue. You'll see, Im using the GitHub disassembly since Im a newbie and I need all things labeled and tagged and split into a lot of individual files (2005 one's 3MB sonic.asm file lags like hell in my netbook) and I wanted (still want) to port Green Snake's multi-character guide from the old disam format to the GH one, and after some help I have all done... except the DMA Queue. So, I started porting that, and I can not make Sonic appear at all. Im sure that the problem is here, but I don't know what to do. Here's the thing:
Once you've finished, go to "loc_CD4", "loc_DAE", "loc_EEE", and loc_FAE"
Once you've finished, go to "loc_CD4", "loc_DAE", "loc_EEE", and loc_FAE". Replace this piece of code.
tst.b ($FFFFF767).w beq.s loc_D50 lea ($C00004).l,a5 move.l #$94019370,(a5) move.l #$96E49500,(a5) move.w #$977F,(a5) move.w #$7000,(a5) move.w #$83,($FFFFF640).w move.w ($FFFFF640).w,(a5) move.b #0,($FFFFF767).w
jsr (ProcessDMAQueue).lMy disam doesn't have this, but after comparing them side by side, I figured out that it would be this part:
Once you've finished, go to "VBla_08/@waterbelow", "VBla_0A", "VBla_0C/@waterbelow", and "VBla_16"
Replace this piece of code.
tst.b (f_sonframechg).w ; has Sonic's sprite changed? beq.s @nochg ; if not, branch writeVRAM v_sgfx_buffer,$2E0,vram_sonic ; load new Sonic gfx move.b #0,(f_sonframechg).w
The WriteVRAM macro is this:
writeVRAM: macro lea (vdp_control_port).l,a5 move.l #$94000000+(((\2>>1)&$FF00)<<8)+$9300+((\2>>1)&$FF),(a5) move.l #$96000000+(((\1>>1)&$FF00)<<8)+$9500+((\1>>1)&$FF),(a5) move.w #$9700+((((\1>>1)&$FF0000)>>16)&$7F),(a5) move.w #$4000+(\3&$3FFF),(a5) move.w #$80+((\3&$C000)>>14),(v_vdp_buffer2).w move.w (v_vdp_buffer2).w,(a5) endm
The guide says that if you build and you see Sonic, you deserve a cookie. well, Sonic does NOT appear therefore I have NO COOKIE!
Also, while I see that the macro HAS TO BE the thing that I have to replace because it's too bloody similar, I have no idea what those >((())$%$· things are.
Can someone explain to me what am I doing wrong, please? I have this thing pending since I joined the comunity (yes, I am THAT dumb).
Posted 26 October 2015 - 06:57 AM
Posted 15 November 2015 - 05:32 PM
Posted 15 November 2015 - 05:54 PM
Jokes aside, the bank you're looking for is MusicPoint1, but just putting your music there isn't all you need to do: you also need to modify the entry of your music in zMasterPlaylist. Basically, change it from 'id(MusPtr_name)' to '(MusPtr_name-MusicPoint1)/ptrsize'. What this is really doing is subtracting $80 from the value, since the highest bit determines which bank to use. I should really change the Git disasm to be less stupid with that. zMasterPlaylist is useful for some other things as well: if your music is uncompressed, put '+20h' at the end of the entry to make the driver handle it properly. Also, if you want your music to slow down on PAL consoles (like the drowning theme), put '+40h' at the end as well.
Posted 16 November 2015 - 01:28 AM
I got it to work perfectly (I edited it to use default S2 slots as well)
Now my new question is: How do I add more music? I made it so each act has it's own music but now I can't seem to add any more music. I now how to add more music to the banks themselves but I can't seem to actually get them into a slot.
Posted 16 November 2015 - 03:30 AM
EDIT: Yeah, there's z80_MusicBanks and z80_MusicPointers, those I found immediately just by searching 'Snd_GameOver'. Really, try doing that once in a while, it'll save you a few questions. Anyway, you may also need to adjust MusID__End, since, in S&K and flamewing's driver, it's hardcoded. My details might not be exact, unless you felt like porting the current version of flamewing's driver yourself, since the already-ported copy of the driver supplied with a certain guide is outdated and pretty broken last I checked.
Posted 18 November 2015 - 12:36 AM
As for porting over the current version. I litterally had to change 1 line of code to get it to compile and run. I now have to go through and fix all the IDs though now. But neat how it wasn't too hard to get it running.
Posted 18 November 2015 - 09:53 PM
All my attempts have caused the game to freeze at the first loading screen.
The two lines I tried converting I typed as such:
Am I doing something wrong (I know the data is compiled from different files which may complicate it a little).