├── IDCFILES ├── README ├── Sonic 3D Blast (W) [!].bin ├── Sonic 3D Blast (W) [!].i64 ├── TODO ├── database.idc ├── database ├── code.txt ├── compressed.txt ├── fmv_format.txt ├── hex hacking.txt ├── level_order.txt ├── levels.txt ├── objects.txt ├── palettes.txt ├── pointers.txt ├── ram │ ├── general.txt │ └── ingame.txt ├── sonic │ └── animations.txt ├── subroutines.txt └── uncompressed_gfx.txt ├── smps_s3d.asm └── update_20081024 /IDCFILES: -------------------------------------------------------------------------------- 1 | There is a IDC file, named database. It's generated from the command "Dump 2 | database to IDC file". Take a Sonic 3D ROM (the one used is included in the 3 | SVN), make an IDA file from it and apply the IDC files. When you're done, 4 | upload your changes by creating new IDC files. 5 | 6 | There's another command called "Dump typeinfo to IDC file". The data 7 | generated by this file is already generated by the command mentioned above, 8 | so no need to generate both files. 9 | 10 | That's it :) 11 | -- Sik the hedgehog - Oct 18th, 2008 12 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | DISCLAIMER: 2 | Any and all content presented in this repository is presented for informational and educational purposes only. 3 | Commercial usage is expressly prohibited. Sonic Retro claims no ownership of any code in these repositories. 4 | You assume any and all responsibility for using this content responsibly. Sonic Retro claims no responsibiliy or warranty. 5 | 6 | --- 7 | 8 | To get the disassembly, see 'IDCFILES'. 9 | -- Sik the hedgehog - Oct 17th, 2008 10 | 11 | ---------- 12 | 13 | Some labels you may want to check: 14 | 15 | > IngameMode - Main subroutine for in-game code 16 | > LoadLevel - Main subroutine for loading levels 17 | > InitLevel - Initializes level-specific* stuff 18 | > RunLevel - Level-specific* behaviour 19 | > RunSonic - Sonic's behaviour code 20 | 21 | *Boss code counts as level-specific. 22 | -- Sik the hedgehog - Sep 13rd, 2008 23 | -------------------------------------------------------------------------------- /Sonic 3D Blast (W) [!].bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonicretro/s3ddisasm/6d7815119e662b162875d64be58d991fac582f2d/Sonic 3D Blast (W) [!].bin -------------------------------------------------------------------------------- /Sonic 3D Blast (W) [!].i64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonicretro/s3ddisasm/6d7815119e662b162875d64be58d991fac582f2d/Sonic 3D Blast (W) [!].i64 -------------------------------------------------------------------------------- /TODO: -------------------------------------------------------------------------------- 1 | The disassembly is in IDA64 format (yes, IDA64 runs on Win32). Please don't 2 | complain about "binary blobs". If you don't want it, then go and search for 3 | a program that can do the same as IDA but with pure source code, and that 4 | runs on Win32. Then I'll switch to pure source code. Some stuff will have to 5 | be redone though (like adding the LevelHeader structure explicitly into the 6 | source code). 7 | -- Sik the hedgehog - Sep 13rd, 2008 8 | 9 | The contents in the database are a bit outdated, so you may want to update 10 | them or even give it a better formatting. Also all the data must be merged, 11 | as well as adding it to the disassembly. 12 | -- Sik the hedgehog - Sep 13rd, 2008 13 | 14 | Also, all local variables must be renamed. My fault, they'll clash on 15 | assemblers =[ Also, even if that's done, it won't work on ASMX because it 16 | doesn't support "d*.b" pseudo-instructions. 17 | -- Sik the hedgehog - Sep 13rd, 2008 18 | -------------------------------------------------------------------------------- /database/code.txt: -------------------------------------------------------------------------------- 1 | --========================-- 2 | LEVEL INITIALIZATION 3 | --========================-- 4 | 5 | $00DC36 ... Jump table 6 | 7 | $00DC92 ... Null level (just 'rts') 8 | 9 | $00EAD8 ... Green Grove 1 10 | $00E918 ... Green Grove 2 11 | $00DD12 ... Green Grove 3 12 | 13 | $007340 ... Rusty Ruins 1 14 | $007C0E ... Rusty Ruins 2 15 | $006D84 ... Rusty Ruins 3 16 | 17 | $009526 ... Spring Stadium 1 18 | $008DEA ... Spring Stadium 2 19 | $0087CE ... Spring Stadium 3 20 | 21 | $00FF9A ... Diamond Dust 1 22 | $00F946 ... Diamond Dust 2 23 | $00F1CA ... Diamond Dust 3 24 | 25 | $00A51E ... Vulcano Valley 1 26 | $00AD3A ... Vulcano Valley 2 27 | $009DF8 ... Vulcano Valley 3 28 | 29 | $011C78 ... Gene Gadget 1 30 | $011540 ... Gene Gadget 2 31 | $0110BA ... Gene Gadget 3 32 | 33 | $013336 ... Panic Puppet 1 34 | $013B38 ... Panic Puppet 2 35 | $01258C ... Panic Puppet 3 36 | 37 | $014170 ... Final Fight -------------------------------------------------------------------------------- /database/compressed.txt: -------------------------------------------------------------------------------- 1 | --===========================-- 2 | RNC COMPRESSED GRAPHICS 3 | --===========================-- 4 | 5 | $0D3B1C ... RRz3 helmet (did I guess the word?) 6 | $0D3FE2 ... RRz axe piece (not complete) 7 | $0D4096 ... RRz3 foot 8 | $0D440A ... RRz3 bullet 9 | $0FFDBE ... RRz3 arm ball? 10 | $0D43BC ... Shadow when Sonic is spinning. Yes, serious... 11 | $14915A ... ??? 12 | $143E74 ... Flickies' shadow 13 | $143ED8 ... Ring blink and dirt 14 | $145232 ... Tails Special Stage floor 15 | $14A31C ... Knuckles Special Stage floor 16 | $14DC3E ... Knuckles Special Stage background 17 | $14F0EC ... Special Stage rings 18 | $14F2AC ... Special Stage spikeballs 19 | $151180 ... Special Stage: "COLLECT RINGS TO GO" 20 | $15DEBA ... Title card graphics (letters, numbers and "ACT") 21 | $15E3E6 ... 8x16 characters (letters, numbers, : and /) 22 | $15E5E2 ... Graphics that cover the letters in the score tally 23 | $15E610 ... Text: "Demo mode" 24 | $15E6A8 ... Cutscene text font 25 | $165530 ... Pre-GGz1 video, 1st screen: clouds 26 | $166482 ... Pre-GGz1 video, 1st screen: flickies 27 | $16918C ... Pre-GGz1 video, 2nd screen: scenery and Eggman 28 | $17538E ... Pre-GGz1 video, 5th screen: scenery and big ring 29 | $178B4E ... ??? (I think I know what it is but don't have time to check --Sik) 30 | $18424A ... Try Again: Robotnik 31 | $1A7EB4 ... Traveller's Tales logo and palettes 32 | $255420 ... Numbers from Continue screen 33 | $25DB5C ... Menu and Continue screens background 34 | 35 | --===========================-- 36 | RNC COMPRESSED TILEMAPS 37 | --===========================-- 38 | 39 | $262934 ... Menu and Continue screens background 40 | -------------------------------------------------------------------------------- /database/fmv_format.txt: -------------------------------------------------------------------------------- 1 | FRAME DATA: 2 | 3 | +$00 ... dwords ... Table of offsets to compressed data. 4 | 5 | OFFSETED BY +$00 DATA, +$04 DATA, ETC 6 | 7 | +$00 ... dword ... RNC Method 2 compressed data size. 8 | +$04 ... word ... Decompressed Checksum 9 | +$06 ... word ... Compressed Checksum 10 | +$08 ... byte ... Leeway needed to decompress file 11 | +$09 ... byte ... Amount of pack chunks 12 | +$0a ... bytes ... RNC Method 2 compressed data. 13 | 14 | LOCATIONS: 15 | 16 | $184aee: Sega Screen 17 | $1b055c: Intro FMV (Zooming into Flickies' Island) 18 | $1d3ba4: Intro FMV (Sonic running with flickies) 19 | -------------------------------------------------------------------------------- /database/hex hacking.txt: -------------------------------------------------------------------------------- 1 | --=============-- 2 | MAIN MENU 3 | --=============-- 4 | 5 | $01F230 ... Signed word ..... Speed when going from Start to Controls 6 | $01F25E ... Signed word ..... Speed when going from Sound Test to Controls 7 | $01F2A4 ... Signed word ..... Speed when going from Controls to Start 8 | $01F2C8 ... Signed word ..... Speed when going from Sound Test to Start 9 | $01F318 ... Signed word ..... Speed when going from Controls to Sound Test 10 | $01F344 ... Signed word ..... Speed when going from Start to Sound Test 11 | 12 | --================-- 13 | LEVEL SELECT 14 | --================-- 15 | 16 | $020CD0 ... Unsigned word ... BGM ID of the Level Select screen 17 | $020F24 ... Signed word ..... Y coordinate base for the LEVEL SELECT text 18 | 19 | --================-- 20 | SHIELD STUFF 21 | --================-- 22 | 23 | $00B6EA ... Unsigned word ... Shield that protects against VVz lava 24 | $00BA20 ... Unsigned word ... Shield that protects against VVz small fireballs 25 | $00BAB4 ... Unsigned word ... Shield that protects against VVz fireball chain bases 26 | $015FC4 ... Unsigned word ... Shield that protects against PPz turrets 27 | $017114 ... Unsigned word ... Shield that protects against VVz fireball chains 28 | $017144 ... Unsigned word ... Shield that protects against VVz flamethrower fireballs 29 | $0171D0 ... Unsigned word ... Shield that protects against RRz flamethrower fireballs 30 | $0198A2 ... Unsigned word ... Shield that leaves a traill on homing (normal) 31 | $0198AA ... Unsigned word ... Shield that leaves a traill on homing (or'd with $8000) 32 | 33 | --=================-- 34 | MISCELLANEOUS 35 | --=================-- 36 | 37 | $001EE6 ... Unsigned word ... Number of 32x32 tiles to draw when drawing an entire row 38 | $01B704 ... Unsigned word ... Maximum number of rings to scatter when getting hurt 39 | $01B70A ... Unsigned word ... Number of rings to scatter if exceeding the maxmimum 40 | -------------------------------------------------------------------------------- /database/level_order.txt: -------------------------------------------------------------------------------- 1 | --=================-- 2 | LEVEL ORDER 3 | --=================-- 4 | 5 | Below is the order of the levels used in the game. 6 | $000A2D is the level entered upon pressing 'START'. 7 | Each value after that is the next level in the sequence. 8 | The level values are listed at the bottom. 9 | 10 | $000A2D ... Green Grove Zone 1 11 | $000A2F ... Green Grove Zone 2 12 | $000A31 ... Green Grove Zone 3 13 | $000A33 ... Rusty Ruin Zone 1 14 | $000A35 ... Rusty Ruin Zone 2 15 | $000A37 ... Rusty Ruin Zone 3 16 | $000A39 ... Spring Stadium Zone 1 17 | $000A3B ... Spring Stadium Zone 2 18 | $000A3D ... Spring Stadiun Zone 3 19 | $000A3F ... Diamond Dust Zone 1 20 | $000A41 ... Diamond Dust Zone 2 21 | $000A43 ... Diamond Dust Zone 3 22 | $000A45 ... Volcano Valley Zone 1 23 | $000A47 ... Volcano Valley Zone 2 24 | $000A49 ... Volcano Valley Zone 3 25 | $000A4B ... Gene Gadget Zone 1 26 | $000A4D ... Gene Gadget Zone 2 27 | $000A4F ... Gene Gadget Zone 3 28 | $000A51 ... Panic Puppet Zone 1 29 | $000A53 ... Panic Puppet Zone 2 30 | $000A55 ... Panic Puppet Zone 3 31 | $000A57 ... The Final Fight 32 | 33 | --=================-- 34 | LEVEL VALUES 35 | --=================-- 36 | 37 | 01 ... Green Grove Zone 1 38 | 02 ... Green Grove Zone 2 39 | 03 ... Green Grove Zone 3 40 | 04 ... Gene Gadget Zone 1 41 | 05 ... Gene Gadget Zone 2 42 | 06 ... Rusty Ruin Zone 2 43 | 07 ... Rusty Ruin Zone 1 44 | 08 ... Rusty Ruin Zone 3 45 | 09 ... Diamond Dust Zone 1 46 | 0A ... Diamond Dust Zone 2 47 | 0B ... Diamond Dust Zone 3 48 | 0C ... Volcano Valley Zone 2 49 | 0D ... Volcano Valley Zone 1 50 | 0E ... Volcano Valley Zone 3 51 | 0F ... Spring Stadium Zone 1 52 | 10 ... Spring Stadium Zone 2 53 | 11 ... Spring Stadium Zone 3 54 | 12 ... Gene Gadget Zone 3 55 | 13 ... Panic Puppet Zone 2 56 | 14 ... Panic Puppet Zone 1 57 | 15 ... Panic Puppet Zone 3 58 | 16 ... The Final Fight 59 | -------------------------------------------------------------------------------- /database/levels.txt: -------------------------------------------------------------------------------- 1 | --=================-- 2 | HEADER FORMAT 3 | --=================-- 4 | 5 | +$00 ... Pointer ... Object data (RNC'd) 6 | +$04 ... Pointer ... Collision layout (RNC'd) 7 | +$08 ... Pointer ... Plane B graphics (RNC'd) 8 | +$0C ... Pointer ... 9 | +$10 ... Pointer ... 32x32 mappings for plane B 10 | +$14 ... Pointer ... Plane A graphics 11 | +$18 ... Pointer ... Level layout 12 | +$1C ... Pointer ... List of miscellaneous graphics to load 13 | +$20 ... Pointer ... Sonic data 14 | +$24 ... Word ...... Dummy? (always $0000) 15 | +$26 ... Byte ...... Index of 1st palette 16 | +$27 ... Byte ...... Index of 2nd palette 17 | +$28 ... Byte ...... Index of 3rd palette 18 | +$29 ... Byte ...... Index of 4th palette 19 | 20 | --=================-- 21 | LAYOUT FORMAT 22 | --=================-- 23 | 24 | OK, this one is tricky. First there's a $100-sized list containing word 25 | offsets from the address. Each offset belongs to a different tile row. 26 | 27 | [to be continued] 28 | 29 | --=============================================-- 30 | GRAPHICS LIST (POINTED BY +$1C IN HEADER) 31 | --=============================================-- 32 | 33 | +$00 ... Word ...... If 1, continue reading. If 0, end of list, stop reading. 34 | +$02 ... Pointer ... Graphics to load (RNC compressed) 35 | +$06 ... Pointer ... Where to decompress (should be RAM, d'oh) 36 | +$10 ... Word ...... 37 | +$12 ... Word ...... 38 | 39 | --==============-- 40 | SONIC DATA 41 | --==============-- 42 | 43 | +$00 ... Word ...... Sonic X coordinate 44 | +$02 ... Word ...... Sonic Z coordinate 45 | +$04 ... Word ...... Sonic angle ($800 = full circle) 46 | 47 | --=================-- 48 | MISCELLANEOUS 49 | --=================-- 50 | 51 | $000A2C ... Word[22] ... Level order 52 | $024F7A ... Word[22] ... BGM for each level 53 | -------------------------------------------------------------------------------- /database/objects.txt: -------------------------------------------------------------------------------- 1 | --=======================-- 2 | OBJECT ENTRY FORMAT 3 | --=======================-- 4 | 5 | +$04 ... 16-bit ........ ??? 6 | +$06 ... Fixed 16.16 ... Object's X coordinate 7 | +$0A ... Fixed 16.16 ... Object's Y coordinate 8 | +$0E ... Fixed 16.16 ... Object's Z coordinate 9 | +$1C ... Signed word ... Object's frame graphic index 10 | +$1E ... Signed word ... Object's current animation frame 11 | +$22 ... Signed word ... Object type ID? 12 | +$24 ... 16-bit ........ ??? 13 | +$2A ... 32-bit ........ ??? 14 | +$2E ... 16-bit ........ ??? 15 | +$30 ... 16-bit ........ ??? 16 | +$32 ... 16-bit ........ ??? 17 | +$34 ... 32-bit ........ ??? 18 | 19 | --================-- 20 | OBJECT TYPES 21 | --================-- 22 | 23 | $0002 ... Ant badnik from GGz 24 | $0004 ... Spikeball from GGz 25 | $0006 ... Badnik with spikeball from GGz (body) 26 | $0008 ... Snake badnik from GGz (head) 27 | $000A ... Snake badnik from GGz (body) 28 | $000C ... Springs 29 | $000E ... Floor gate 30 | $0010 ... Breakable rock from GGz2 31 | $0012 ... Spinning thing (the one that makes Sonic spindash) 32 | $0014 ... Breakable wall from GGz 33 | -------------------------------------------------------------------------------- /database/palettes.txt: -------------------------------------------------------------------------------- 1 | --===========-- 2 | IN-GAME 3 | --===========-- 4 | 5 | $0250C2 ... Main sprites #1 (Sonic) 6 | $01F08E ... Main sprites #2 (most stages) 7 | $025142 ... Eggman 8 | 9 | --==================-- 10 | LEVEL-SPECIFIC 11 | --==================-- 12 | 13 | $025082 ... Green Grove palette #1 14 | $0250A2 ... Green Grove palette #2 15 | 16 | $0251A2 ... Rusty Ruins palette #1 17 | $0251C2 ... Rusty Ruins palette #2 18 | $0251E2 ... Rusty Ruins palette #3 19 | 20 | $025242 ... Volcano Valley palette #1 21 | $025262 ... Volcano Valley palette #2 22 | $025282 ... Volcano Valley palette #3 23 | 24 | $0252A2 ... Spring Stadium palette #1 25 | $0252C2 ... Spring Stadium palette #2 26 | 27 | --=========-- 28 | FMV's 29 | --=========-- 30 | $01ED58 ... Intro part 1 31 | $01ED78 ... Intro part 2 32 | -------------------------------------------------------------------------------- /database/pointers.txt: -------------------------------------------------------------------------------- 1 | --===========-- 2 | IN CODE 3 | --===========-- 4 | 5 | $01A530 ... Absolute ....... Graphics used by the title card (RNC) 6 | $01A54A ... Absolute - 4 ... Table with title card tile info 7 | $01FE7A ... Absolute ....... Graphics used by big letters in credits (RNC) 8 | $020C02 ... Absolute ....... Graphics used by level select title (RNC) 9 | $021142 ... Absolute ....... Graphics used by big letters in SS score tally (RNC) 10 | $021822 ... Absolute ....... Graphics used by big letters in level score tally (RNC) 11 | $022FE0 ... Absolute ....... Graphics used by the "TRY AGAIN" text (RNC) 12 | -------------------------------------------------------------------------------- /database/ram/general.txt: -------------------------------------------------------------------------------- 1 | --==================-- 2 | NON-GAME STUFF 3 | --==================-- 4 | 5 | $FF0000 ................... Stack ($400 bytes long) 6 | $FF0400 ... Pointer ....... Pointer to subroutine to use on VBI 7 | 8 | --===============-- 9 | SOUND STUFF 10 | --===============-- 11 | 12 | $FF0AC4 ... Signed word ... Put a sound ID here and it'll be played 13 | $FF0AC6 ... Signed word ... Put a sound ID here and it'll be played -------------------------------------------------------------------------------- /database/ram/ingame.txt: -------------------------------------------------------------------------------- 1 | --=========-- 2 | SONIC 3 | --=========-- 4 | 5 | Base address: FFC1E6 6 | 7 | +$06 ... FFC1EC ... Fixed comma 16.16 ... X coordinate 8 | +$0A ... FFC1F0 ... Fixed comma 16.16 ... Y coordinate 9 | +$0E ... FFC1F4 ... Fixed comma 16.16 ... Z coordinate 10 | +$12 ... FFC1F8 ... Fixed comma 16.16 ... X speed 11 | +$16 ... FFC1FC ... Fixed comma 16.16 ... Y speed 12 | +$1A ... FFC200 ... Fixed comma 16.16 ... Z speed 13 | +$1E ... FFC204 ... Fixed comma 16.16 ... General speed 14 | +$3C ... FFC222 ... 16-bit bitfield ..... Flags for Sonic's sprite 15 | +$44 ... FFC22A ... Signed word ......... 1 if Sonic is on the ground, 0 otherwise 16 | +$46 ... FFC22C ... Signed word ......... -1 if pressed jump once, 2 if twice, 0 otherwise 17 | +$4C ... FFC232 ... Signed word ......... Height of the floor Sonic is on, or -1 if not controlling collisions 18 | +$90 ... FFC276 ... Signed word ......... Previous sprite index (4 byte step) 19 | +$92 ... FFC278 ... Signed word ......... Current sprite index (4 byte step) 20 | +$94 ... FFC27A ... Signed word ......... Current animation 21 | 22 | --============-- 23 | FLICKIES 24 | --============-- 25 | 26 | $FF0A8E ... Signed word ......... Number of flickies chasing Sonic 27 | $FF0A92 ... Signed word ......... Number of saved flickies 28 | 29 | --============-- 30 | MONITORS 31 | --============-- 32 | 33 | $FF0A86 ... Signed word ......... Effect of the monitor just broken 34 | 35 | --=================-- 36 | MISCELLANEOUS 37 | --=================-- 38 | 39 | $FF0410 ... Word ................ Non-zero when in Demo Mode 40 | $FF0678 ... Signed word ......... Current level 41 | $FF0680 ... Signed word ......... Number of lives 42 | $FF06AA ... Signed word ......... Amount of continues 43 | $FF084E ... Signed word ......... Scroll X coordinate 44 | $FF0850 ... Signed word ......... Scroll Y coordinate 45 | $FF0A0C ... Signed word? ........ Number of active (on screen) objects 46 | $FF0A56 ... BCD word ............ Number of rings (BCD, for HUD) 47 | $FF0A5A ... Signed word ......... Number of rings (real amount) 48 | $FF0AC0 ... Signed word ......... Index of shield frame 49 | $FF0AC2 ... Word ................ Shield Sonic is currently using 50 | $FF0AF4 ... Word ................ Toggles LSB every frame. Used for blinking 51 | $FFC262 ... Unsigned word ....... Invincibility time left 52 | $FFC264 ... Unsigned word ....... Supersneakers time left 53 | $FFCCD2 ... Array ............... Object data 54 | -------------------------------------------------------------------------------- /database/sonic/animations.txt: -------------------------------------------------------------------------------- 1 | These values are set in $FFC27A 2 | 3 | $0000 ... Idle 4 | $0001 ... Running 5 | $0002 ... Spinning 6 | $0003 ... Ducking 7 | $0004 ... Stopping (left) 8 | $0005 ... Stopping (right) 9 | $0006 ... Stopping (back) 10 | $0007 ... Spindash 11 | $0008 ... Getting hurt 12 | $0009 ... On a big ring 13 | $000A ... Stopping? (rotating) 14 | $000B ... Waiting 15 | $000C ... On fans 16 | $000D ... Spring (with falling) 17 | $000E ... Spring (no falling) 18 | $000F ... Sliding (wheeeeeeeee!) 19 | $0010 ... Rotating (RRz) 20 | $0011 ... Lose a life :( 21 | $0012 ... Frozen (DDz) -------------------------------------------------------------------------------- /database/subroutines.txt: -------------------------------------------------------------------------------- 1 | --========================-- 2 | LEVEL INITIALIZATION 3 | --========================-- 4 | 5 | $00DC36 ... Jump table 6 | 7 | $00DC92 ... Null level (just 'rts') 8 | 9 | $00EAD8 ... Green Grove 1 10 | $00E918 ... Green Grove 2 11 | $00DD12 ... Green Grove 3 12 | 13 | $007340 ... Rusty Ruins 1 14 | $007C0E ... Rusty Ruins 2 15 | $006D84 ... Rusty Ruins 3 16 | 17 | $009526 ... Spring Stadium 1 18 | $008DEA ... Spring Stadium 2 19 | $0087CE ... Spring Stadium 3 20 | 21 | $00FF9A ... Diamond Dust 1 22 | $00F946 ... Diamond Dust 2 23 | $00F1CA ... Diamond Dust 3 24 | 25 | $00A51E ... Vulcano Valley 1 26 | $00AD3A ... Vulcano Valley 2 27 | $009DF8 ... Vulcano Valley 3 28 | 29 | $011C78 ... Gene Gadget 1 30 | $011540 ... Gene Gadget 2 31 | $0110BA ... Gene Gadget 3 32 | 33 | $013336 ... Panic Puppet 1 34 | $013B38 ... Panic Puppet 2 35 | $01258C ... Panic Puppet 3 36 | 37 | $014170 ... Final Fight -------------------------------------------------------------------------------- /database/uncompressed_gfx.txt: -------------------------------------------------------------------------------- 1 | --=========================-- 2 | UNCOMPRESSED GRAPHICS 3 | --=========================-- 4 | 5 | $033B42 ... Vertical spring 6 | $034DB6 ... Spindash thingy 7 | $03D0C2 ... Big ring 8 | $0A1460 ... Bullets 9 | $0A5908 ... Eggman (boss) 10 | $13C7D8 ... Monitor screens 11 | $13CDD8 ... Blue shield 12 | $13E7D8 ... Yellow shield 13 | $1401D8 ... Red shield 14 | $143F9E ... White sparkle 15 | $14401E ... Rings 16 | $14481E ... Rings' shadow 17 | $144C1E ... HUD numbers 18 | 19 | --===================-- 20 | VERTICAL SPRING 21 | --===================-- 22 | 23 | $033B42 ... Frame #1 24 | $033E34 ... Frame #2 25 | $0340C6 ... Frame #3 26 | 27 | --===================-- 28 | SPINDASH THINGY 29 | --===================-- 30 | 31 | NORTHEAST: 32 | 33 | $034DB6 ... Appear #1 34 | $034FA0 ... Appear #2 35 | $035258 ... Appear #3 36 | $035588 ... Appear #4 37 | $035998 ... Spin #1 38 | $035E48 ... Spin #2 39 | $0362F8 ... Spin #3 40 | 41 | SOUTHWEST: 42 | 43 | $036790 ... Appear #1 44 | $036974 ... Appear #2 45 | $036C1E ... Appear #3 46 | $036FA8 ... Appear #4 47 | $0372F2 ... Spin #1 48 | $0376FC ... Spin #2 49 | $037B06 ... Spin #3 50 | 51 | --============-- 52 | BIG RING 53 | --============-- 54 | 55 | $03D0C2 ... Frame #1 56 | $03D566 ... Frame #2 57 | $03D9D0 ... Frame #3 58 | $03DD7A ... Frame #4 59 | $03E0B2 ... Frame #5 60 | $03E2E4 ... Frame #6 61 | $03E47C ... Frame #7 62 | $03E548 ... Frame #8 63 | 64 | --===========-- 65 | BULLETS 66 | --===========-- 67 | 68 | $0A1460 ... GGz bomb piece (8 frames) 69 | $0A187C ... GGz small rock (16 frames) 70 | $0A207C ... RRz small rock (16 frames) 71 | $0A2878 ... GnGdz/PPz blastball (12 frames) 72 | $0A2E5C ... DDz snowball (16 frames) 73 | $0A367C ... DDz ice spike (16 frames) 74 | $0A3E7C ... ???* (8 frames) 75 | $0A427C ... ???* (16 frames) 76 | $0A4A7C ... SSz mini-spikeball (8 frames) 77 | $0A4E7C ... GnGdz beam (4 frames) 78 | $0A507C ... ???* (16 frames) 79 | 80 | * I can't recognise them right now due to lack of proper palette to use in 81 | TLP >_> That they're listed as ??? means nothing strange, those sprites are 82 | used in game. 83 | -- Sik the hedgehog 84 | 85 | --===================-- 86 | MONITOR SCREENS 87 | --===================-- 88 | 89 | $13C7D8 ... Extra life 90 | $13C858 ... 10 rings 91 | $13C8D8 ... Blue shield 92 | $13C958 ... Yellow shield 93 | $13C9D8 ... Invincibility 94 | $13C458 ... Supersneakers 95 | $13CAD8 ... Red shield 96 | 97 | --===============-- 98 | BLUE SHIELD 99 | --===============-- 100 | 101 | $13CDD8 ... Frame 1 (big) 102 | $13CF78 ... Frame 2 (big) 103 | $13D118 ... Frame 3 (big) 104 | $13D2B8 ... Frame 4 (big) 105 | $13D458 ... Frame 5 (big) 106 | $13D5F8 ... Frame 6 (big) 107 | $13D798 ... Frame 7 (big) 108 | $13D938 ... Frame 8 (big) 109 | $13DAD8 ... Frame 9 (big) 110 | $13DC78 ... Frame 10 (big) 111 | $13DE18 ... Frame 11 (big) 112 | $13DFB8 ... Frame 12 (big) 113 | $13E158 ... Frame 13 (big) 114 | $13E2F8 ... Frame 14 (big) 115 | $13E498 ... Frame 15 (big) 116 | $13E638 ... Frame 16 (big) 117 | 118 | $13CEF8 ... Frame 1 (small) 119 | $13D098 ... Frame 2 (small) 120 | $13D238 ... Frame 3 (small) 121 | $13D3D8 ... Frame 4 (small) 122 | $13D578 ... Frame 5 (small) 123 | $13D718 ... Frame 6 (small) 124 | $13D8B8 ... Frame 7 (small) 125 | $13DA58 ... Frame 8 (small) 126 | $13D8F8 ... Frame 9 (small) 127 | $13DD98 ... Frame 10 (small) 128 | $13DF38 ... Frame 11 (small) 129 | $13E0D8 ... Frame 12 (small) 130 | $13E278 ... Frame 13 (small) 131 | $13E418 ... Frame 14 (small) 132 | $13E5B8 ... Frame 15 (small) 133 | $13E758 ... Frame 16 (small) 134 | 135 | --===========-- 136 | SPARKLE 137 | --===========-- 138 | 139 | $143F9E ... Frame 1 (white) 140 | $143FBE ... Frame 2 (white) 141 | $143FDE ... Frame 3 (white) 142 | $143FFE ... Frame 4 (white) 143 | 144 | --=========-- 145 | RINGS 146 | --=========-- 147 | 148 | $14401E ... Frame 1 149 | $14409E ... Frame 2 150 | $14411E ... Frame 3 151 | $14419E ... Frame 4 152 | $14421E ... Frame 5 153 | $14429E ... Frame 6 154 | $14431E ... Frame 7 155 | $14439E ... Frame 8 156 | $14441E ... Frame 9 157 | $14449E ... Frame 10 158 | $14451E ... Frame 11 159 | $14459E ... Frame 12 160 | $14461E ... Frame 13 161 | $14469E ... Frame 14 162 | $14471E ... Frame 15 163 | $14479E ... Frame 16 164 | 165 | --=================-- 166 | RINGS' SHADOW 167 | --=================-- 168 | 169 | $14481E ... Frame 1 170 | $14485E ... Frame 2 171 | $14489E ... Frame 3 172 | $1448DE ... Frame 4 173 | $14491E ... Frame 5 174 | $14495E ... Frame 6 175 | $14499E ... Frame 7 176 | $1449DE ... Frame 8 177 | $144A1E ... Frame 9 178 | $144A5E ... Frame 10 179 | $144A9E ... Frame 11 180 | $144ADE ... Frame 12 181 | $144B1E ... Frame 13 182 | $144B5E ... Frame 14 183 | $144B9E ... Frame 15 184 | $144BDE ... Frame 16 185 | 186 | --===============-- 187 | HUD NUMBERS 188 | --===============-- 189 | 190 | $144C1E ... 0 191 | $144C5E ... 1 192 | $144C9E ... 2 193 | $144CDE ... 3 194 | $144D1E ... 4 195 | $144D5E ... 5 196 | $144D9E ... 6 197 | $144DDE ... 7 198 | $144E1E ... 8 199 | $144E5E ... 9 200 | -------------------------------------------------------------------------------- /smps_s3d.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sonicretro/s3ddisasm/6d7815119e662b162875d64be58d991fac582f2d/smps_s3d.asm -------------------------------------------------------------------------------- /update_20081024: -------------------------------------------------------------------------------- 1 | * Renamed the 'database' folder to 'old_database', I want to start a new 2 | clean one. Please help :) New database should be in... 'database' :P But 3 | before we start I'd like some suggestions on how to do it. 4 | 5 | * Fixed as most local labels I could find to add an explicit @ in front of 6 | them so assemblers could catch them as real local labels (or at least 7 | ASM68K...). 8 | 9 | * Labeled some of the monitor code. 10 | 11 | -- Sik @ Oct 24th, 2008 --------------------------------------------------------------------------------