Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Another World File Formats
- (Based from RAW by Gregory Montoir, New RAW by Fabien Sanglard and from technical notes by Eric Chahi from Another World 15th Anniversary Disc)
- Set.i Vn, Imm16
- 00 DD NNNN
- (Variable = Imm16)
- Set Vd, Vs
- 01 DD SS
- (VariableDest = VariableSource)
- Add Vd, Vs
- 02 DD SS
- (VariableDest += VariableSource)
- Add.i Vn, Imm16
- 03 DD NNNN
- (Variable += Imm16)
- Jsr Address
- 04 AAAA
- return
- 05
- break
- 06
- Jmp Address
- 07 AAAA
- SetVec Nb, Address
- 08 VV AAAA
- (Vec = $FFFF; No code to run)
- dbra Vn, Address
- 09 VV AAAA
- (Go to Address if Variable != 0)
- Si(Vn,Vn):
- If Vn = Vn Jmp Address
- 0A 80 VV WW AAAA
- If Vn <> Vn Jmp Address
- 0A 81 VV WW AAAA
- If Vn > Vn Jmp Address
- 0A 82 VV WW AAAA
- If Vn => Vn Jmp Address
- 0A 83 VV WW AAAA
- If Vn < Vn Jmp Address
- 0A 84 VV WW AAAA
- If Vn <= Vn Jmp Address
- 0A 85 VV WW AAAA
- Si(Vn,Imm8):
- If Vn = Imm8 Jmp Address
- 0A 00 VV WW AAAA
- If Vn <> Imm8 Jmp Address
- 0A 01 VV WW AAAA
- If Vn > Imm8 Jmp Address
- 0A 02 VV WW AAAA
- If Vn => Imm8 Jmp Address
- 0A 03 VV WW AAAA
- If Vn < Imm8 Jmp Address
- 0A 04 VV WW AAAA
- If Vn <= Imm8 Jmp Address
- 0A 05 VV WW AAAA
- Si(Vn,Imm16):
- If Vn = Imm16 Jmp Address
- 0A 40 VV WWWW AAAA
- If Vn <> Imm16 Jmp Address
- 0A 41 VV WWWW AAAA
- If Vn > Imm16 Jmp Address
- 0A 42 VV WWWW AAAA
- If Vn => Imm16 Jmp Address
- 0A 43 VV WWWW AAAA
- If Vn < Imm16 Jmp Address
- 0A 44 VV WWWW AAAA
- If Vn <= Imm16 Jmp Address
- 0A 45 VV WWWW AAAA
- Fade PalNb
- 0B NN 00
- (Set Palette)
- Vec Start, End, Unlock
- 0C SS EE 00
- (Unlock Vectors from Start to End)
- Vec Start, End, Lock
- 0C SS EE 01
- (Lock Vectors from Start to End)
- Vec Start, End, Clean
- 0C SS EE 02
- (Delete Vectors from Start to End)
- SetWS Nb
- 0D NN
- (Select Work screen)
- Clr Nb, Color
- 0E NN 0C
- (Clear screen with Color)
- Copy Ss Sd
- 0F SS DD
- (Copy workscreen to another workscreen, see Screen Buffers for more info)
- Show NN
- 10 NN
- (Show workscreen)
- Bigend
- 11
- (break + current vector = $FFFF)
- Text TxtNb, X, Y, Color
- 12 TTTT XX YY 0C
- (Show Text at X,Y with color)
- Sub Vd, Vs
- 13 DD SS
- (VariableDest -= VariableSource)
- And.i Vn,Imm16
- 14 VV IIII
- (Variable &= Imm16)
- Or.i Vn,Imm16
- 15 VV IIII
- (Variable ^= Imm16)
- Lsl Vn, Imm16
- 16 VV IIII
- (Variable <= Imm16)
- Lsr Vn, Imm16
- 17 VV IIII
- (Variable >= Imm16)
- Play FileNb, Note, Volume, Channel
- 18 FFFF NN VV CC
- (Play Sound at Note, Volume at one channel)
- Load FileNb
- 19 FFFF
- (Load File number. If 0 then release the memory)
- Song FileNb, Tempo, Position
- 1A FFFF TTTT PP
- (If file number and tempo = 0 then stop song)
- (If file number = 0 and tempo != than current tempo then change tempo of current song)
- Spr.s Addr, X, Y
- (80 || AA) AA XX YY
- Spr.l Addr, X, Y, (Z)
- 01XXYYZZb AAAA (XX)XX (YY)YY (ZZZZ)
- 0=00=Imm16
- 1=01=Variable
- 2=10=Imm8
- 3=11=No Z or X||100
- Exemples:
- Spr.l Addr, X16, Y16, Z16
- 40 AAAA XXXX YYYY ZZZZ
- Spr.l Addr, X8, Y8, Z8
- 6B AAAA XX YY ZZ
- Spr.l Addr, VX, VY, VX
- 55 AAAA VX VY VX
- Polygon Format:
- Header:
- [C0||Pallette] HH VV PP
- (HH = Horizontal Size, VV = Vertical Size)
- Points:
- XX YY [...*PP]
- Polygon Group Format:
- Header:
- 02 BX BY NN
- (BX = Horizontal Point Base, BY = Vertical Point Base)
- Group:
- CHHHHHHHb HH RX RY (APPPPPPPb) (MM)
- C = 0: Default Color
- C = 1: Color 4
- H = Group number (15-bit)
- RX = X relative
- RY = Y relative
- A = Mask Flag Bit
- P = Pallette (only if C = 1)
- MM = Mask (only if A = 1)
- Screen Buffers (workscreens):
- 0=Plain Color
- 1=Double Buffer
- 2=Double Buffer
- 3=Background
- 254=Visible Screen
- 255=Invisible Screen
- Special Screen copy (Source Screen byte only):
- 10000SSb
- SS = Screen Buffer (0 to 3)
- Copy Screen to Destination Screen at Vertical Position taken from Variable 249
- Color Format:
- 0000RRRRGGGGBBBBb
- Color Number:
- 0 to 15 = Plain colors
- 16 = Written to the last screen
- 17 = Written to the first screen
- Pallette Format:
- 64 pallettes with 16 colors (32 bytes)
- 64 * 32 = 2048.
- First half is for Amiga
- Last half is for other ports
- Special Variables:
- V60 = Random Seed
- V218 = Keyboard Letter Key pressed (from 'a' to 'z' only)
- V229 = Joystick Vertical (0 = None; -1 = Up; 1 = Down)
- V244 = Used for Music Sync
- V249 = Vertical Position for Copy (Can be used for vertical scrolling)
- V250 = Joystick Button (0 = Release; 1 = Hold)
- V251 = Joystick Vertical (0 = None; -1 = Up; 1 = Down)
- V252 = Joystick Horizontal (0 = None; -1 = Left; 1 = Right)
- V253 = Button Mask (0000UDLR)
- V254 = Button Mask 2 (B000UDLR)
- V255 = Game Speed
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement