

DreamcastImageBuilder.exe there and run it.
Guides
How to play Dreamcast SA1 with mods - this is for the final version but the main steps are the same for the Autodemo.
How to add mods to DC Image Builder
How to make your own mods for DC Image Builder
Outdated links
Old Autodemo hack archive
Old screenshots, videos
Cheat Engine tables, lists etc. (edited)
Researcher role to be able to view it) (edited)
(1ST_READ) Expand Act 1's object list
NOTE: In case 2CC83700-2CCA7FD0 is used by something else and breaks the game, there needs to be two spaces at least 0xE2C0 each in size to fit both the SET file and the current object list.


(1ST_READ) Expand Act 1's object list
NOTE: In case 2CC83700-2CCA7FD0 is used by something else and breaks the game, there needs to be two spaces at least 0xE2C0 each in size to fit both the SET file and the current object list. 







































































00 ring
01 spring
02 springb
03 o axpnl
04 o ironb
05 o febjg
06 o toge
07 o eme p
08 o release
09 o switch
0a cmn kusa
0b cmn_dring
0c o baloon
0d o itembox
0e o r_v
0f o r_vs
10 o jpanel
11 o save point
12 o item stand
13 o dig place1
14 o dig place2
15 o kill switch
16 o monkey cage
17 o island door
18 o knuckles door
19 o eggman door
1a o sand switch (edited)







I HAS could've been called o_windy_hasira or something















4









= in the if condition ok? Shouldn't it be ==?


















DreamcastImageBuilder.exe there and run it.

















































1
1





00 chao
01 amy
02 big
03 e102
04 beach 1
05 beach 2
06 beach big
07 chaos 0 cutscene -unused
08 strain -unused
09 eggman fanfare
0a final egg 1
0b final egg 2
0c fish hit
0d highway 1
0e building
0f ice cap 2
10 ice cap 3
11 knuckles
12 ruin 1 -unused
13 ruin 2 -unused
14 ruin 3 -unused
15 fish caught
16 mountain 1
17 mountain 2
18 station square -unused
19 sonic
1a tails
1b super sonic -unused
1c title short
expanded
1d windy 1
1e windy 2
1f windy 3
20 twinkle 1
21 twinkle 2
22 twinkle 3
23 sky deck 1
00/24 sky deck 2 -bg2
01/25 casinopolis 1
02/26 casinopolis 2
03/27 casinopolis 3
04/28 casinopolis 4
05/29 boss event
06/2a chaos 0
07/2b chaos 6
08/2c vs eggman bossall
09/2d eggmobile 23
0a/2e eggmanrobo
0b/2f e-series bosstrgt
0c/30 e101 r
0d/31 egg carrier
0e/32 mystic ruins
0f/33 cart
10/34 shooting
11/35 sand hill
12/36 chao race





























8c043598 - null code -> 8c044e4a intended? (advance act old ptr near, 56 bytes behind)
8c02e9c0 - middle of a function -> 8c02fe40 intended? (scenechanger old ptr near, 2c2 bytes behind)
8c066a40 - middle of a function -> 8c06ab5e intended? (countcharacters old ptr near, 38 bytes ahead)
8c098e9a - null code -> 8c0a4bbe intended? (nearest old ptr is e102beamtaskpointer, bcfe bytes ahead)
8c58fd4a - jump to not code -> 8c5ad94a intended? (drawshapemotion old ptr near, 11f4 behind)










SymbolName 8c010000
AnotherSymbol 8c7589a0













; Chao Race start position for Sonic (replaces MR Garden)
15F4CC,Uint16/Uint16/float/float/float/Uint16=40/0/-170/60/-25/32517

8c02e9c0 - middle of a function -> 8c02fe40 intended? (scenechanger old ptr near, 2c2 bytes behind, with this all other objects don't crash),
8c58fd4a - jump to not code -> 8c5ad94a intended? (drawshapemotion old ptr near, 11f4 behind, njroundoff near, ef6 ahead) (there is another instance in 1ST_READ where this is jumped to before CalcMMMotion, it takes a value in r4).
broken data pointer?
8c54da84
broken model pointers (for call to EasyDrawModel):
8c54dbe8
8c54dd7c
broken action pointers:
8c54ef44 -> 8c56cb2c monkeycage_kikicelebratebackflip
8c54feb8 -> 8c56daa0 monkeycage_kikicelebratejump
8c55102c -> 8c56ec14 monkeycage_kikimoving
8c551e70 -> 8c56fa58 monkeycage_kikithrowbomb
8c552de4 -> 8c5709cc monkeycage_kikijump
8c553988 -> 8c571570 monkeycage_kikiscratching
i'm unsure about the model pointers. the last two are definitely going to be used in a call for EasyDrawModel, the first might need to be something else entirely. it is ahead of the call to what i set to 8c5ad94a and goes into stack. i tried with three model pointers from kiki, kikitail and kikitailend.
the action pointers have the same distance between them for broken and fixed ones. (edited)
8c54da84 -> 8c56b66c monkeycage_kikimdl,
8c54dbe8 -> 8c56b7d0 monkeycage_kikitailmdl,
8c54dd7c -> 8c56b964 monkeycage_kikitailendmdl
seemingly leaving only the 8c5ad94a function call or the texlist stuff as the issue.
2

FlagDebugThing,8c043598,8c044e44
ObjPrintSomeParamStrings,8c02e9c0,8c02fe40
GetPlayerID,8c066a40,8c06ab5e
KnucklesDigActionThing,8c098e9a,8c09d060
MonkeyCageActionThing,8c58fd4a,8c5ad94a
modelSwitchBase,8c162dc8,8c17a480
modelSwitchButton,8c162a6c,8c17a124
monkeycage_kikimdl,8c54da84,8c56b66c
monkeycage_kikitailmdl,8c54dbe8,8c56b7d0
monkeycage_kikitailendmdl,8c54dd7c,8c56b964
monkeycage_kikicelebratebackflip,8c54ef44,8c56cb2c
monkeycage_kikicelebratejump,8c54feb8,8c56daa0
monkeycage_kikimoving,8c55102c,8c56ec14
monkeycage_kikithrowbomb,8c551e70,8c56fa58
monkeycage_kikijump,8c552de4,8c5709cc
monkeycage_kikiscratching,8c553988,8c571570 (edited)




























































Level IDs that are different from the final version:
34 Twinkle Circuit (Y0B)
35 Sky Chase Act 1 (Z0B)
35 Sky Chase Act 2 (Z0B - looks like it loads the one for Act 1 even if the one for Act 2 exists)
36 Sand Hill (1A0B)
37 SS garden (1B0B)
38 EC garden (1C0B)
39 MR garden (1D0B)
40 Chao Race (1E0B)
It is now using the correct versions of these files, but SL Light data is from final and it could've been different in the Autodemo. Sadly we don't have SL_Z0B from the original Sky Chase.








; Functions that use Ninja Lights
; 8C5AECBC is njAction
; 8C5AF9B2 is njEasyAction
; 8C5FDE50 is njDrawModel
; 8C5C1CBC is njEasyDrawModel?
; 8C5FDEB2 is njDrawObject
; 8C5C1CD2 is njEasyDrawObject?
; Functions that use Lantern lighting
; 8C03068C is dsDrawModel
; 8C030592 is dsDrawObject
; 8C5AC6BA is DrawAction








1[STG00.PRS]
22DDC,sint16=2068
This will prevent it from crashing at the cost of not processing some 200 vertices/normals













































E102KillCursor: 8C0AAA10
E102KillCursorOnly: 8C0AAAA0












































Twinkle Park
https://drive.google.com/file/d/1XgzDKvFNMLgrikfn8PFJCiteSmDlCxUj
Lost World
https://drive.google.com/file/d/1WCoWvdnyaEsqSC36JgQTWcdEhZqFxEFD
Sky Deck
https://drive.google.com/file/d/1d9i6WcAyT_8nw-l8kDfR3rVLPLsWYIke
Windy Valley
https://drive.google.com/file/d/1K5x4Th3BKIBohIYD64ur5N-MnZJSjBNa
https://drive.google.com/file/d/1Q6hWuIc_rYZlC_jCGQrhisN-VswqKqY3 (SET0200S)
Casinopolis
https://drive.google.com/file/d/1JPGVRGnwZLsEpZi9hvu2PJ4_T4ExZriC
Sky Chase
https://drive.google.com/file/d/17kn8t1nEDSK_2mPdU8Fmuc5Ta2UMyvK5
Sand Hill
https://drive.google.com/file/d/15nyVrM4XM2E1HT0lMhstspcv2FmKKmGh









1




























1




































































Sonic: 2 October
Tails/Knuckles: 15 August
Amy/E102: 28 September
Big: 8 October










3

































































































ama_hw003 (Alpha)
antlgt (Corrupted)
en01 (Corrupted)
en02 (Corrupted)
en04 (Corrupted)
gatetx06 (Corrupted)
plant03 (Corrupted)
plant05 (Higher res in data3)
ref_black (Edited)
ref_white (Edited)
ref_yellow (Edited)
sign2 (Edited)
st_c17 (Edited)
st_c18 (Edited)
st_c19 (Alpha)
st_c20 (Alpha)
st_E3 (Flipped vertically)
st_green03 (Edited)
st_green11 (Edited)
st_green12 (Corrupted)
tokei3 (Corrupted)
tokei7 (Corrupted)
yajirusi03 (Edited/Rotated)









3





















2



P_ and V_ banks













































































































































































0CB68000/0CB70000/0CB78000 as standard for acts 1-3, for the few act 4s in this list it uses 0CB6C000, which is the second half of act 1'sLoadSetFile("EC30", 0xCB68000);
LoadSetFile("EC32", 0xCB78000);
























































































Filenames = 0x1, // PVMH_PS_PVRNAME
PixelDataFormat = 0x2, // VMH_PS_CATEGORYCODE
TextureDimensions = 0x4, // VMH_PS_ENTRYINFO (EntryStatus)
GlobalIndex = 0x8, // VMH_PS_GLOBALINDEX - This and all the above must be present for a valid PVM
ModelName = 0x10, // PVMH_PS_CHUNK_MDLN
ConverterName = 0x20, // PVMH_PS_CHUNK_CONV
PVMI = 0x40, // PVMH_PS_CHUNK_PVMI
IMGC = 0x80, // PVMH_PS_CHUNK_IMGC
PVRT = 0x100, // PVMH_PS_CHUNK_PVRT
COMM = 0x200, // PVMH_PS_CHUNK_COMM
BANKID = 0x400, // PVMH_PS_BANKID
PVPL = 0x800, // PVMH_PS_CHUNK_PVPL
PVPN = 0x1000 // PVMH_PS_CHUNK_PVPN





















3















0: SSVAR_TIME
1: SSVAR_EGG_ON
2: SSVAR_CASINO_BUTTON
3: ECVAR_JAIL1
4: ECVAR_JAIL2
5: ECVAR_JAIL3
6: ECVAR_ROTARYFLOOR
7: ECVAR_POOLOPEN
8: ECVAR_OPENBRIDGE
9: ECVAR_GATE_A
0A/10: ECVAR_ELEVATOR_TOP
0B/11: ECVAR_ELEVATOR_BTM
0C/12: ECVAR_HAMMERSWITCH
0D/13: ECVAR_PALMSWITCH
0E/14: ECVAR_MONORAIL
0F/15: ECVAR_EGGMANBUTTON
10/16: ECVAR_MOGURA
11/17: ECVAR_SCENE_CHANGE
12/18: ECVAR_TRANSFORM
13/19: ECVAR_LONGHAMMER
14/20: ECVAR_TYPE3LASER
15/21: ECVAR_SERVICE_MONORAIL
16/22: ECVAR_EGGLIFT_MODE
17/23: ECVAR_EGGLIFT_RUN
18/24: ECVAR_E102_BOOSTER
19/25: ECVAR_TORNADO_LOST
1A/26: ECVAR_POOLFILLED
1B/27: ECVAR_ALIFE_FOOD
1C/28: ECVAR_ALIFE_EGG (edited)


2












































0C904EA4: Bg_Chaos0
0C901FE0: BossChaos0
0C902FC0: changeHeadColorChaos0
0C9024A6: Chaos0Display
0C902AC0: Chaos0DisplayRarm
0C900B00: chaos0Jump
0C9004A0: chaos0Punch
0C9007D2: chaos0Roll
0C9001C0: chaos0Walk
0C903720: ctrlRainEffect
0C901EF2: deleteChaos0
0C901CE0: execModeChaos0
0C9037A4: genericdraw (I named this)
0C9027A6: landtablething (this too)
0C903400: RainEffect
0C904E00: Rd_Chaos0
0C904E54: Rd_Chaos0Init
0C9000F4: setApartTargetPos
0C901EE8: setChaos0
0C902E20: setChaos0ColliParam
0C901BE0: setMaterialChaos0
0C90374E: setRainEffect
0C9032DA: setShakeHeadParam
0C903068: shakeChaos0Head
B_CHAOS4:
0C9008C0: BossChaos4
0C904140: C4SuimenYurashiSet
0C900F20: Chaos4Damage
0C900BF2: Chaos4Display
0C904A38: Chaos4EmeraldSet
0C9017C0: Chaos4Hashira
0C900374: chaos4Move
0C901AC0: Chaos4Punch
0C901040: Chaos4Rolling
0C9028C0: Chaos4Separate
0C903d8C: Chaos4SideCollisionSet
0C90062E: Chaos4Up
0C901D38: Chaos4ArmFlagSet
0C904A14: End_SuimenYurashi
0C9006C0: ExecModeChaos4
0C904AE0: Rd_Chaos4
0C904B00: RdChaos4Init
0C900828: setChaos4
B_CHAOS6:
0C901720: Bg_Chaos6
0C900C80: BossChaos6
0C900F10: Chaos6Display
0C9009E0: ExecModeChaos6
0C9016A0: Rd_Chaos6
0C9016BC: RdChaos6Init
0C900BE8: setChaos6 (Creates BossChaos6) 

0C904EA4: Bg_Chaos0
0C901FE0: BossChaos0
0C902FC0: changeHeadColorChaos0
0C9024A6: Chaos0Display
0C902AC0: Chaos0DisplayRarm
0C900B00: chaos0Jump
0C9004A0: chaos0Punch
0C9007D2: chaos0Roll
0C9001C0: chaos0Walk
0C903720: ctrlRainEffect
0C901EF2: deleteChaos0
0C901CE0: execModeChaos0
0C9037A4: genericdraw (I named this)
0C9027A6: landtablething (this too)
0C903400: RainEffect
0C904E00: Rd_Chaos0
0C904E54: Rd_Chaos0Init
0C9000F4: setApartTargetPos
0C901EE8: setChaos0
0C902E20: setChaos0ColliParam
0C901BE0: setMaterialChaos0
0C90374E: setRainEffect
0C9032DA: setShakeHeadParam
0C903068: shakeChaos0Head
B_CHAOS4:
0C9008C0: BossChaos4
0C904140: C4SuimenYurashiSet
0C900F20: Chaos4Damage
0C900BF2: Chaos4Display
0C904A38: Chaos4EmeraldSet
0C9017C0: Chaos4Hashira
0C900374: chaos4Move
0C901AC0: Chaos4Punch
0C901040: Chaos4Rolling
0C9028C0: Chaos4Separate
0C903d8C: Chaos4SideCollisionSet
0C90062E: Chaos4Up
0C901D38: Chaos4ArmFlagSet
0C904A14: End_SuimenYurashi
0C9006C0: ExecModeChaos4
0C904AE0: Rd_Chaos4
0C904B00: RdChaos4Init
0C900828: setChaos4
B_CHAOS6:
0C901720: Bg_Chaos6
0C900C80: BossChaos6
0C900F10: Chaos6Display
0C9009E0: ExecModeChaos6
0C9016A0: Rd_Chaos6
0C9016BC: RdChaos6Init
0C900BE8: setChaos6 (Creates BossChaos6) 
2













































2


















































































