don't click here

Basic Questions & Answers thread

Discussion in 'Engineering & Reverse Engineering' started by Tweaker, May 29, 2008.

  1. ValleyBell

    ValleyBell

    Tech Member
    243
    14
    18
    researching PC-98/X68000 sound drivers
    Sorry, I'm late.
    Like rhs said correctly, you need MIDI Controller 111 which is the loop controller for mid2smps. (and also RPG Maker, although it's used a bit differently there)

    You need to place two of them on every used channel, one with value/data 0 to mark the loop start and one with value 1 to mark the loop end.
    Loop controllers on the drum channel 10 are used for both, DAC and PSG3 tracks.
     
  2. Machenstein

    Machenstein

    Member
    830
    0
    0
    I want to replace Green Hill Zone's background with these:

    [​IMG]

    [​IMG]

    The problem is the parallax scrolling in GHZ can be quite tricky. I know there's Selbi's Parallax Editor, but it keeps giving me an error each time I try to load S1LVL.ini. Any solutions? Keep in mind that I'm using SonLVL.
     
  3. Alriightyman

    Alriightyman

    I am back... from the dead! Tech Member
    357
    11
    18
    Somewhere in hot, death Florida
    0101001101101111011011100110100101100011 00000010: 0101001100000011 01000101011001000110100101110100011010010110111101101110
    Your getting an error because it is most likely targeting an older version of SonLVL.

    I believe you can just use an image to load and use that to see it on the background of Selbi's editor. Then just paste the code into your hack.
     
  4. Machenstein

    Machenstein

    Member
    830
    0
    0
    Okay, here's what I have:

    [​IMG]

    As well as this code:

    Code (ASM):
    1.         lea ($FFFFCC00).w,a1    ; load beginning address of horizontal scroll buffer to a1
    2.  
    3.         move.w  ($FFFFF700).w,d0    ; load FG screen's X position
    4.         neg.w   d0          ; negate (positive to negative)
    5.         swap    d0          ; send to the left side of d0
    6.         move.w  ($FFFFF708).w,d0    ; load BG screen's X position
    7.         neg.w   d0          ; negate (positive to negative)
    8.         asr.w   #1,d0           ; divide by 2 (Slow down the scroll position)
    9.         move.w  #88-1,d1        ; set number of scan lines to dump (minus 1 for dbf)
    10. GHZ_DeformLoop_1:
    11.         move.l  d0,(a1)+        ; dump both the FG and BG scanline position to buffer
    12.         dbf d1,GHZ_DeformLoop_1 ; repeat d1 number of scanlines
    13.  
    14.         move.w  ($FFFFF700).w,d0    ; load FG screen's X position
    15.         neg.w   d0          ; negate (positive to negative)
    16.         swap    d0          ; send to the left side of d0
    17.         move.w  ($FFFFF708).w,d0    ; load BG screen's X position
    18.         neg.w   d0          ; negate (positive to negative)
    19.         asr.w   #1,d0           ; divide by 2 (Slow down the scroll position)
    20.         move.w  #66-1,d1        ; set number of scan lines to dump (minus 1 for dbf)
    21. GHZ_DeformLoop_2:
    22.         move.l  d0,(a1)+        ; dump both the FG and BG scanline position to buffer
    23.         dbf d1,GHZ_DeformLoop_2 ; repeat d1 number of scanlines
    24.  
    25.         move.w  ($FFFFF700).w,d0    ; load FG screen's X position
    26.         neg.w   d0          ; negate (positive to negative)
    27.         swap    d0          ; send to the left side of d0
    28.         move.w  ($FFFFF708).w,d0    ; load BG screen's X position
    29.         neg.w   d0          ; negate (positive to negative)
    30.         asr.w   #1,d0           ; divide by 2 (Slow down the scroll position)
    31.         move.w  #72-1,d1        ; set number of scan lines to dump (minus 1 for dbf)
    32. GHZ_DeformLoop_3:
    33.         move.l  d0,(a1)+        ; dump both the FG and BG scanline position to buffer
    34.         dbf d1,GHZ_DeformLoop_3 ; repeat d1 number of scanlines
    Where should I paste it at?
     
  5. vladikcomper

    vladikcomper

    Tech Member
    203
    125
    43
    Sonic Warped
    Find Deform_GHZ routine in your disassembly, then, according to the original Selbi's post (http://forums.sonicretro.org/index.php?showtopic=25359):

     
  6. Machenstein

    Machenstein

    Member
    830
    0
    0
    Well this is odd. Now when I import the art, it gets all garbled up.

    [​IMG]

    What could be the cause?
     
  7. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,651
    218
    43
    SonLVL
    Maybe the block list ran out of space?
     
  8. Machenstein

    Machenstein

    Member
    830
    0
    0
    I just tried deleting some blocks to make room, but it still ended up garbled. Could it be the format I'm saving the image in? I'm saving it as a PNG, 8bpp (256 colors).
     
  9. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,651
    218
    43
    SonLVL
    That's the preferred image format...
     
  10. Machenstein

    Machenstein

    Member
    830
    0
    0
    Strangely enough, the image doesn't end up garbled in SonED2.

    [​IMG]

    Could the problem be related to SonLVL?
     
  11. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,651
    218
    43
    SonLVL
    Definitely. Art editing/importing is the weakest part of SonLVL.
     
  12. Machenstein

    Machenstein

    Member
    830
    0
    0
    In that case, I'll just use SonLVL for layout editing and SonED2 for art. That being said, anyone know how to get SonED2 to use palette row 2 for art importing? I had to edit palette row 0 (Sonic's palette) in order to get the colors right as seen in the image above.

    EDIT: Just for comparison sake, here's what happens when I import the art without editing palette row 0.

    [​IMG]
     
  13. SonED doesn't use palette 'rows' but uses colour IDs for its art, kind of a pain in the ass, but you'll want an image editor that you can select a palette from...
     
  14. Machenstein

    Machenstein

    Member
    830
    0
    0
    Would GraphicsGale do? That's the program I used to make sure that only the colors in palette row 2 were used.
     
  15. Knucklez

    Knucklez

    I love 2B 'n' ass. Member
    683
    17
    18
    This may be a terrible question, but do most emulators, such as Fusion 3.64, work on Windows 8?
     
  16. Overlord

    Overlord

    Now playable in Smash Bros Ultimate Moderator
    18,879
    732
    93
    Long-term happiness
    Any emulator that works on 7 should work on 8 - assuming of course it's the x86/x64 version and not the ARM-only RT.
     
  17. Knucklez

    Knucklez

    I love 2B 'n' ass. Member
    683
    17
    18
    That's what I was initially thinking, but wasn't really sure. Thanks a lot, Overlord.
     
  18. The Prof

    The Prof

    The Island Professor Member
    107
    0
    16
    Orkney, Scotland
    Sonic 1 Yarmar Edition
    Having just come back to hacking after a long beak, I decided to upgrade to the Mercurial disassembly. I attempted to use SonMapEd to remind myself of how to work it, and I saved some unmodified mappings and pattern cues for Sonic. When I attempted to build the ROM it gave this error log:

    SN 68k version 2.53

    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_INC\PALETTE POINTERS.ASM(25) : Warning : Size of pal_levels ($6) does not match ZoneCount ($7).
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\SONIC.ASM(3038) : Warning : Size of colpointers ($6) does not match ZoneCount ($7).
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_INCOBJ\3A GOT THROUGH CARD.ASM(175) : Warning : Size of levelorder ($6) does not match ZoneCount ($7).
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\SONIC.ASM(6825) : Warning : Size of musiclist2 ($6) does not match ZoneCount ($7).
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_INC\PATTERN LOAD CUES.ASM(23) : Warning : Size of plc_levels ($6) does not match ZoneCount ($7).
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_INC\PATTERN LOAD CUES.ASM(36) : Warning : Size of plc_animals ($6) does not match ZoneCount ($7).
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\SONIC.ASM(9093) : Warning : Forward reference to redefinable symbol
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\SONIC.ASM(2298) : Warning : Forward reference to redefinable symbol
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\SONIC.ASM(2384) : Warning : Forward reference to redefinable symbol
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_INCOBJ\81 CONTINUE SCREEN SONIC.ASM(22) : Error : Symbol 'map_sonic' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_INCOBJ\81 CONTINUE SCREEN SONIC.ASM(54) : Error : Symbol 'map_sonic' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_INCOBJ\59 SLZ ELEVATORS.ASM(10) : Warning : Forward reference to redefinable symbol
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_INCOBJ\5A SLZ CIRCLING PLATFORM.ASM(10) : Warning : Forward reference to redefinable symbol
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_INCOBJ\5B STAIRCASE.ASM(10) : Warning : Forward reference to redefinable symbol
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_INCOBJ\5E SEESAW.ASM(10) : Warning : Forward reference to redefinable symbol
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\SONIC.ASM(6761) : Error : Symbol 'map_sonic' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(38) : Error : Symbol 'fr_walk13' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(38) : Error : Symbol 'fr_walk14' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(38) : Error : Symbol 'fr_walk15' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(38) : Error : Symbol 'fr_walk16' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(38) : Error : Symbol 'fr_walk11' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(38) : Error : Symbol 'fr_walk12' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(40) : Error : Symbol 'fr_run11' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(40) : Error : Symbol 'fr_run12' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(40) : Error : Symbol 'fr_run13' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(40) : Error : Symbol 'fr_run14' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(42) : Error : Symbol 'fr_roll1' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(42) : Error : Symbol 'fr_roll2' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(42) : Error : Symbol 'fr_roll3' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(42) : Error : Symbol 'fr_roll4' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(42) : Error : Symbol 'fr_roll5' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(44) : Error : Symbol 'fr_roll1' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(44) : Error : Symbol 'fr_roll2' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(44) : Error : Symbol 'fr_roll5' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(44) : Error : Symbol 'fr_roll3' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(44) : Error : Symbol 'fr_roll4' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(44) : Error : Symbol 'fr_roll5' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(46) : Error : Symbol 'fr_push1' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(46) : Error : Symbol 'fr_push2' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(46) : Error : Symbol 'fr_push3' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(46) : Error : Symbol 'fr_push4' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(48) : Error : Symbol 'fr_stand' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(48) : Error : Symbol 'fr_stand' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(48) : Error : Symbol 'fr_stand' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(48) : Error : Symbol 'fr_stand' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(48) : Error : Symbol 'fr_stand' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(48) : Error : Symbol 'fr_stand' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(48) : Error : Symbol 'fr_stand' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(48) : Error : Symbol 'fr_stand' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(48) : Error : Symbol 'fr_stand' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(49) : Error : Symbol 'fr_stand' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(49) : Error : Symbol 'fr_stand' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(49) : Error : Symbol 'fr_stand' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(49) : Error : Symbol 'fr_wait2' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(49) : Error : Symbol 'fr_wait1' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(49) : Error : Symbol 'fr_wait1' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(49) : Error : Symbol 'fr_wait1' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(49) : Error : Symbol 'fr_wait2' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(49) : Error : Symbol 'fr_wait3' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(51) : Error : Symbol 'fr_balance1' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(51) : Error : Symbol 'fr_balance2' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(53) : Error : Symbol 'fr_lookup' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(55) : Error : Symbol 'fr_duck' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(57) : Error : Symbol 'fr_warp1' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(59) : Error : Symbol 'fr_warp2' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(61) : Error : Symbol 'fr_warp3' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(63) : Error : Symbol 'fr_warp4' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(65) : Error : Symbol 'fr_stop1' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(65) : Error : Symbol 'fr_stop2' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(67) : Error : Symbol 'fr_float1' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(67) : Error : Symbol 'fr_float4' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(69) : Error : Symbol 'fr_float1' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(69) : Error : Symbol 'fr_float2' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(69) : Error : Symbol 'fr_float5' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(69) : Error : Symbol 'fr_float3' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(69) : Error : Symbol 'fr_float6' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(71) : Error : Symbol 'fr_spring' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(73) : Error : Symbol 'fr_hang1' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(73) : Error : Symbol 'fr_hang2' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(75) : Error : Symbol 'fr_leap1' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(75) : Error : Symbol 'fr_leap1' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(75) : Error : Symbol 'fr_leap1' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(77) : Error : Symbol 'fr_leap1' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(77) : Error : Symbol 'fr_leap2' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(79) : Error : Symbol 'fr_surf' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(81) : Error : Symbol 'fr_getair' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(81) : Error : Symbol 'fr_getair' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(81) : Error : Symbol 'fr_walk15' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(81) : Error : Symbol 'fr_walk16' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(83) : Error : Symbol 'fr_burnt' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(85) : Error : Symbol 'fr_drown' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(87) : Error : Symbol 'fr_death' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(89) : Error : Symbol 'fr_shrink1' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(89) : Error : Symbol 'fr_shrink2' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(89) : Error : Symbol 'fr_shrink3' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(89) : Error : Symbol 'fr_shrink4' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(89) : Error : Symbol 'fr_shrink5' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(89) : Error : Symbol 'fr_null' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(91) : Error : Symbol 'fr_injury' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(94) : Error : Symbol 'fr_injury' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(94) : Error : Symbol 'fr_waterslide' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(96) : Error : Symbol 'fr_null' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(98) : Error : Symbol 'fr_float1' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(98) : Error : Symbol 'fr_float2' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(98) : Error : Symbol 'fr_float5' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(98) : Error : Symbol 'fr_float3' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(98) : Error : Symbol 'fr_float6' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_ANIM\SONIC.ASM(100) : Error : Symbol 'fr_float1' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_INCOBJ\SONIC LOADGFX.ASM(15) : Error : Symbol 'sonicdynplc' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_INCOBJ\SUB REACTTOITEM.ASM(17) : Error : Symbol 'fr_duck' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_INCOBJ\09 SONIC IN SPECIAL STAGE.ASM(28) : Error : Symbol 'map_sonic' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_INCOBJ\DEBUGMODE.ASM(183) : Error : Symbol 'map_sonic' not defined
    C:\USERS\ANDREW MOWAT\GAMES\HACKING\NEW FOLDER\_INCOBJ\DEBUGMODE.ASM(195) : Error : Symbol 'map_sonic' not defined

    Assembly completed.
    100 error(s) from 52085 lines in 0.16 seconds

    I looked a little further into the matter and found that SonMapEd seems to save mappings in a different format to how they are in this disassembly. Does anyone know a way (preferably quick) to convert the mappings saved by SonMapEd to be usable in this disassembly?
     
  19. jbr

    jbr

    Member
    59
    20
    8

    Unfortunately not. The format is the same but SonMapEd does not read the labels from the input file, so when you save it again it generates new labels. It's a go-though-by-hand solution I'm afraid. I would use the original file as a reference, it doesn't take too long with a good text editor.
     
  20. vladikcomper

    vladikcomper

    Tech Member
    203
    125
    43
    Sonic Warped
    The best way to solve all further problems would be using a Hivebrain's Disassembly.

    I tried HG disasm a while ago. I downloaded a new clean disassembly with no changes at all. I build it and... I got a bunch of warnings. Seriously, what the fuck with that thing? How am I supposed to use something that doesn't even prove to be stable in a clean form? This is nonsense, a disassembly that doesn't even assembles properly from the very beginning.

    I know so many people were trying their best on HG disassembly, incredible amounts of work were done, so many code was annotated. I'm using some resources of it sometimes, as it has a lot of excellent ideas of storing things, like macros to work with VRAM, constants for object's STTs and so informative variables file, that I often look through. I mean, it's awesome, it's full of some great ideas and features overall, but it has one major problem: it's totally messy and unusable, your issue just proves that.

    Basically, they overdid everything. Usage of macros and labels, dividing subroutines into separate files, everything is too extensive and annoying, leaving you guess where the code you need for hours.

    As for the particular issue you've having. I'm more or less familiar with this disassembly, and I'm afraid fixing it is a real challenge. You see, when you save mappings with SonMapEd, it changes all the labels used to mark frames to randomly generated names. This is fine, as these labels are only necessary to build table of offsets in the beginning of mappings data. But in HG disasm, they overdid things once again, now label names from mappings file are used directly in animation scripts, instead of frame IDs. This doesn't make much sense, look, you can just open Sonic's sprites in SonMapEd to see what frame ID is what when you need it. Was naming IDs really that necessary? As a result, you now can't touch Sonic's mappings with SonMapEd because of that solution.

    So, to fix it, you'd rather:

    1) Fix about 100 labels renamed by SonMapEd every time you save mappings.

    2) Replace over 9000 references to these labels in Sonic.asm file with proper frame IDs, like they were in old good Hivebrain's disassembly. You can try replacing all Sonic animation scripts with ones from old disassembly, which can be rather challenging as well, since HG uses more labels in animations scripts as well (as far as I remember). And this doesn't guarantee you won't have issues any further, there can be even more label-sensitive places.

    3) Use a good disassembly.