Sonic and Sega Retro Message Board: Basic Questions & Answers thread - Sonic and Sega Retro Message Board

Jump to content

Hey there, Guest!  (Log In · Register) Help
  • 396 Pages +
  • ◄ First
  • 394
  • 395
  • 396
    Locked
    Locked Forum

Basic Questions & Answers thread NEWBIES: Start here!

#5926 User is offline Haxhabte 

Posted 11 September 2017 - 08:52 PM

  • Posts: 10
  • Joined: 26-August 17
  • Gender:Male
  • Location:USA
I needed help importing Sonic Generations .KF animations with the niftools plugin. apparently the animation is loaded perfectly but it doesnt "sync" with the model. What happens is that the model just becomes heavily distorted. I tried searching everywhere for help with no answers. I'll attach a screenshot. I want to know if there is a way to manually fix this. Its not an animation import issue as all the bones look perfect (*looks*), it just looks like the model is stretching to reach the bone location instead of just shifting.

Huge images btw
Spoiler

This post has been edited by Haxhabte: 11 September 2017 - 08:55 PM

#5927 User is offline Azu 

Posted 12 September 2017 - 02:36 PM

  • I must be stupid.
  • Posts: 1521
  • Joined: 23-February 08
  • Gender:Male
  • Location:Home

View PostMainMemory, on 26 August 2017 - 09:28 PM, said:

No, out of all the things in the game, the debug lists are completely uneditable by any means. I don't know how they managed to do it, but there you are.

Yes, you can edit them, they're all stored in the ASM after the debug mode routines, usually using macros. In the current S3K disassembly, look for DebugOffs in sonic3k.asm.


Cool. Found them. It also possible to get an Object List? Like something that shows, Object Subtype, Frame, and ArtTile data? I'm looking at levels in SonicLvL and it shows me some of the information.

dbglistobj Obj_Monitor,			Map_Monitor,			   6,   0, make_art_tile($4C4,0,0)


I saw that in AIZ/Debug/Act 1.asm. That's the S monitor which seem to have a subtype of 6. However, in SonLVL, it's subtype is 9. Am I looking in the wrong place?

#5928 User is offline MainMemory 

Posted 12 September 2017 - 02:54 PM

  • Every day's the same old thing... Same place, different day...
  • Posts: 3901
  • Joined: 14-August 09
  • Gender:Not Telling
  • Project:SonLVL
  • Wiki edits:1,339
No, you're definitely in the right place, and you are correct on both counts. The subtype used in the debug list says 6, but according to SonLVL it should be 9. I don't know what's going on either.

As for a full list, well, there's some lists on the wiki, but they're made for ROM hacking, not disassemblies.
This post has been edited by MainMemory: 12 September 2017 - 02:56 PM

#5929 User is offline Azu 

Posted 12 September 2017 - 02:56 PM

  • I must be stupid.
  • Posts: 1521
  • Joined: 23-February 08
  • Gender:Male
  • Location:Home
Yeah, what I'm trying to do is add all monitor boxes in the list. Want to see if I can add bosses too.
This post has been edited by Azu: 12 September 2017 - 02:58 PM

#5930 User is offline MainMemory 

Posted 12 September 2017 - 03:11 PM

  • Every day's the same old thing... Same place, different day...
  • Posts: 3901
  • Joined: 14-August 09
  • Gender:Not Telling
  • Project:SonLVL
  • Wiki edits:1,339
I wouldn't count on bosses working properly when spawned from the debug list, most of them (if not all of them) use hardcoded positions, and the graphics will be entirely wrong.

#5931 User is offline Azu 

Posted 12 September 2017 - 03:15 PM

  • I must be stupid.
  • Posts: 1521
  • Joined: 23-February 08
  • Gender:Male
  • Location:Home

View PostMainMemory, on 12 September 2017 - 03:11 PM, said:

I wouldn't count on bosses working properly when spawned from the debug list, most of them (if not all of them) use hardcoded positions, and the graphics will be entirely wrong.

Ah, that would make sense.
	dbglistobj Obj_Monitor,			Map_Monitor,		       1,   1, make_art_tile($4C4,0,0)
	dbglistobj Obj_Monitor,			Map_Monitor,		       2,   2, make_art_tile($4C4,0,0)
	dbglistobj Obj_Monitor,			Map_Monitor,		       3,   3, make_art_tile($4C4,0,0)
	dbglistobj Obj_Monitor,			Map_Monitor,		       4,   4, make_art_tile($4C4,0,0)
	dbglistobj Obj_Monitor,			Map_Monitor,		       5,   5, make_art_tile($4C4,0,0)
	dbglistobj Obj_Monitor,			Map_Monitor,		       6,   6, make_art_tile($4C4,0,0)
	dbglistobj Obj_Monitor,			Map_Monitor,		       7,   7, make_art_tile($4C4,0,0)
	dbglistobj Obj_Monitor,			Map_Monitor,		       8,   8, make_art_tile($4C4,0,0)
	dbglistobj Obj_Monitor,			Map_Monitor,		       9,   9, make_art_tile($4C4,0,0)


Tried something like this, and I was able to get some of the monitors to show different icons, but still spawns S-Monitor.
This post has been edited by Azu: 12 September 2017 - 03:15 PM

#5932 User is offline MainMemory 

Posted 12 September 2017 - 03:22 PM

  • Every day's the same old thing... Same place, different day...
  • Posts: 3901
  • Joined: 14-August 09
  • Gender:Not Telling
  • Project:SonLVL
  • Wiki edits:1,339
Ha, found the culprit:
		cmpi.l	#Obj_Monitor,(a1)
		bne.s	locret_92C0A
		move.b	#9,$2C(a1)

If you remove those three lines (under loc_92BB2), you can get the monitor to spawn with any subtype you want. I wonder why they did it that way though, instead of just using the subtype they already had in the debug list. It's rather hacky.
This post has been edited by MainMemory: 12 September 2017 - 03:22 PM

#5933 User is offline Azu 

Posted 12 September 2017 - 05:12 PM

  • I must be stupid.
  • Posts: 1521
  • Joined: 23-February 08
  • Gender:Male
  • Location:Home
Oh, nice, it worked.

#5934 User is offline CHRdutch 

Posted Yesterday, 03:57 AM

  • There's no dog food in it, I swear.
  • Posts: 54
  • Joined: 30-September 16
  • Gender:Male
  • Location:Earth, I think.
  • Project:A generic Sonic 1 ROMhack
Alright, this is a problem I've had for quite a while now, but I just can't seem te be able to fix it.

I'm trying to add the water graphics to Green Hill Zone, but I have no idea where there's VRAM space to put them in.
The problem is that "_inc\Pattern Load Cues.asm" states the adresses where the Green Hill Zone tiles are stored, but it is never stated where the graphics end. So everytime I try to place the water graphics somewhere, something else get overwritten. And I have no idea where there is space to put them in.

So where can I see for how much tiles the already loaded graphics run?
Or is there even space for the water graphics?

#5935 User is offline MarkeyJester 

Posted Yesterday, 04:48 AM

  • The architect of the universe, didn't build a stairway, leading nowhere.
  • Posts: 1808
  • Joined: 22-July 08
  • Gender:Male
  • Location:Japan
  • Wiki edits:16
In the routine "Level:", right after "bsr.w Pal_FadeFrom", put in the following:

		lea	($C00004).l,a6				; load VDP control port
		move.w	#$8F01,(a6)				; set increment mode to 1
		move.l	#$94FF93DF,(a6)				; set DMA size
		move.l	#$97804020,(a6)				; set DMA source and destination/mode
		move.w	#$0080,(a6)				; set DMA destination/mode
		move.w	#$FFFF,-$04(a6)				; fill location with FFFF
		nop						; delay

LV_Wait:
		move.w	(a6),ccr				; load status
		bvs.s	LV_Wait					; if the VDP DMA busy flag was set (bit 1), branch to wait til finished...
		move.w	#$8F02,(a6)				; set increment mode to normal

		moveq	#$00,d0					; reload HUD/Lives graphics
		bsr.w	RunPLC_ROM				; ''

What this will do, is it'll first fill all of VRAM from 0020 up to FFFF with F's, this will turn all tiles (except the first) into a solid graphical tile. The rest of the level's routine will load graphics into VRAM, and once it's done and the level has started, any free space will be solid tiles using the last colour of the palette. So, run the game, let the level start, and then, you'll need a way to view VRAM, here are a few ways...

You can use Regen, it has a "VDP Debugger" you can use to see VRAM:

Posted Image

Unfortunately, this debugger doesn't display the exact VRAM address of a tile, also, the last row of VRAM tiles in that window cannot be viewed because the program doesn't let you scroll down enough.

Another method is to hijack the savestate. So, make a savestate, then opening that savestate with a hex editor:

Posted Image

Delete the data from offset 000000 to 012478:

Posted Image

Putting the data at 012478 - 022477 now at 000000 - 00FFFF:

Posted Image

Save it, and now you can open this savestate with any tile editor of your liking, here it is open in SonMapEd:

Posted Image

You see those yellow tiles? Those are the free spaces, in SonMapEd you can click on a yellow tile, then in "View > Info..." menu, it'll display the details of the free tile(s):

Posted Image

So, tile at VRAM 67C0 is free...

If you'd prefer, I could write you a program that opens the savestate and displays the free space addresses for you, using tiles completely filled with "F's" as an indicator. But I find, using these visual ways is much more convenient, since you can "see" what tiles and art are around, and can make decisions as to whether or not you want to move other art around, delete other art, etc.

#5936 User is offline EnderWaffle 

Posted Yesterday, 03:01 PM

  • Posts: 9
  • Joined: 13-August 15
  • Gender:Male
  • Location:The Middle of Nowhere, USA
  • Project:S1: CE, RSS
Hello! I have a question.

So there are a bunch of hacks that use different palettes for each act and I wanted to do that with my Sonic 1 hack but can't figure it out. I've found the palette pointers and put new palettes in for the zones but I don't know where to put the code. Can anyone help me with this? Thanks.

  • 396 Pages +
  • ◄ First
  • 394
  • 395
  • 396
    Locked
    Locked Forum

2 User(s) are reading this topic
0 members, 2 guests, 0 anonymous users

  1. Google