A complete Assembler, BASIC and 'C' Development Suite for the Atari Jaguar
Reference Manual - Updated: Feb 4th, 2021 - v1.0
Reference Manual
Please refer to the Quickstart Guide for a brief walkthrough on setting up a BASIC project.
JagStudio
supports BASIC, C and Assember languages. This reference manual
is written aiming towards BASIC, however, the same functions are
available to C and ASM too. The syntax for those will be
different when calling JagStudio functions.
This is not designed to be a comprehensive guide - it only
covers the
commands, functions and variables introduced in JagStudio.
It does not cover BCX functions, commands and syntax. For that you are kindly referred to read the bcx help file, "BCXHelp.chm" or browse the example projects.
For further information please visit the official site at jagstudio.reboot-games.com or the forums over at AtariAge.
Index
To create a new project and get going, open a command prompt
in the JagStudio folder and type either 'build projectname newbasic' ,
'build projectname newc' or 'build projectname newasm' (without quotes) where projectname is a unique
name for your project.
The project files will be created in
the relevant \projects\language\ folder ready for editing. To run your
project from that same command prompt type 'build projectname' and it'll
run in VJ.
General notes about build.bat:
Command | Description |
---|---|
build (no parameters) | Lists all projects in the "projects" folder |
build projectname newbasic | Creates a new BASIC language project in the \projects\basic\ folder. |
build projectname newc | Creates a new C language project in the \projects\c\ folder. |
build projectname newasm | Creates a new ASM language project in the \projects\asm\ folder. |
build projectname | Builds project and runs it in the Virtual Jaguar emulator (VJ) |
build projectname skunk | Builds project and uploads it to a Skunkboard |
build projectname skunkabs | Builds and performs a quick upload of the ABS portion
of the build while leaving the previous ROM on the Skunk. Beware: only run this if you haven't changed any ROM assets. Useful and faster to upload to the Skunk if you are using a ROM file but have not changed any assets within it. This will just upload the code and any ABS assets. |
build projectname jaggd | Builds project and uploads it to JagGD |
build projectname ROM | Builds project as a ROM file. Assets in RAM are packed with the program code and depacked into RAM during boot. Assets in ROM simply are mapped inside ROM space. |
build projectname ROM skunk | Builds project as a ROM file and uploads it to skunkboard. NOTE: THIS WILL OVERWRITE ANY ROM YOU HAVE ON BANK 1 OF YOUR SKUNKBOARD WITHOUT WARNING! |
build projectname ROM jaggd | Builds project as a ROM file and uploads it to JagGD. |
build projectname skunk bjl | Uploads built binary using bjl transfer (note: you might need to edit the upload settings). Will not work for ROM builds. |
build projectname mrq Developername PublisherName Year | Create a JagGD MRQ file. This uses the screen and box images from \projectname\assets\jaggd\ Example: build projectname mrq Devname Pubname 2021 |
build projectname ROM split | Build the ROM and split the output to HI and LO files |
This is the file where you declare all the main assets to be
loaded for your project. Items such as graphics, sounds and music.
See the instructions in the assets.txt file on formatting
those commands. Please also refer to example projects.
Command | Description |
---|---|
Assets can be packed. Suffix field C with "_pack" in assets.txt |
See file assets.txt |
Command | Description |
---|---|
Binary bitfields in basic |
Example: B8(11110000) is 240 in decimal. |
rapNTSCFlag | is > 0 if machine is ntsc, otherwise it is PAL. |
jsfSort(table,no_of_indices) |
sorts an array of longwords from smallest to largest. Only longwords (4 byte integers) for now. |
value = rapRND() | Get a random 32bit number. See example project 'rndtest'. |
Command | Description |
---|---|
jsfColour x | set plot colour (0 - 15) |
jsfPlot(x,y) | plot pixel in coordinates x,y with the colour set using "jsfColour" |
cls | clears the pixel/print text buffer |
Command | Description |
---|---|
vsync | Waits till the next vertical blank (This is a BASIC convenience command for jsfVsync(0) ) |
jsfVsync(0) | Waits till the next vertical blank |
jsfDelay(x) | Waits for x vertical blanks. |
Command | Description |
---|---|
poke x,y | writes byte y to address x |
peek(x) | returns byte from address x |
dpoke x,y | writes word y to address x |
dpeek(x) | returns word from address x |
lpoke x,y | writes longword y to address x |
lpeek(x) | returns longword from address x |
Command | Description |
---|---|
rapUnpack(source_address,destination_address) | Unpacks data using the GPU from source_address
to destination_address.
Note that it's your responsibility to reserve enough RAM for unpacking.
Also, no checking to see if a packed asset exists at the source address
- again it's
your responsibility!
This is the default and fastest unpack routine. If any assets have issues, use jsfUnpack68k instead. Example: dim buffer[352*250*2/4] as integer ' Define a buffer in memory to hold a 352x250 16bit image. rapUnpack((int)strptr(source_image),(int)(int *)buffer) ' Unpack the packed image into the buffer. |
jsfUnpack68k(source_address,destination_address) | Unpacks data using the 68000 from source_address
to destination_address.
Note that it's your responsibility to reserve enough RAM for unpacking.
Also, no checking to see if a packed asset exists at the source address
- again it's
your responsibility!
This is slower than the default unpacker but in some edge cases can be more compatible. Example: dim buffer[352*250*2/4] as integer ' Define a buffer in memory to hold a 352x250 16bit image. jsfUnpack68k((int)strptr(source_image),(int)(int *)buffer) ' Unpack the packed image into the buffer. |
Command | Description |
---|---|
rapBlitlist(pointer_to_blitlist). |
Passes a list of blitting commands to raptor so they can be processed fast. pointer_to_blitlist contains an array of ints that have A1_BASE, A1_FLAGS, A1_CLIP, A1_PIXEL, A1_STEP_INT, A1_STEP_FRAC, A1_PIXEL_POINTER, A1_INC_INT, A1_INC_FRACT, A2_BASE, A2_FLAGS, B_PATD, A2_PIXEL, A2_STEP, B_COUNT, B_CMD. End the list with -1. Example project: blitline |
Command | Description |
---|---|
rapSetActiveList(listnum) | Set the active object list as defined in rapinit.s where listnum is zero based. |
sprite[spr_index].property = value |
Sets the property of object spr_index to value . See Table A for properties, their descriptions and user friendly names. Example: sprite[1].x = 10<<16 |
value = sprite[spr_index].property |
Gets the property of object spr_index and saves it to value. See Table A for properties, their descriptions and user friendly names. Example: xposition = sprite[1].x |
rapCollide ( |
Will return 1 (hit has occurred) if anything within the specified range has collided. This is only a general indication of a collision and further interrogation via the 'was_hit' variable will let you know which object has actually collided with any of the source objects. The values of damage variables of the source objects is deducted from the target objects. raptor can be set to automatically kill an object when its hitpoint variable reaches -1 (dead) by setting the object variable 'remhit' to 'cd_remove' (1) The collision check will only work on objects that have their 'colchk' variable set to 'can_hit' (1), objects that are set to 'cant_hit' (-1) will be skipped. |
jsfSprlistFieldSet(spr_index, property, no_of_times, array_of_values) | Will write longword values from address array_of_values, no_of_times times in raptor table property, starting with index spr_index. |
jsfSprlistFieldMod(spr_index, property, no_of_times, array_of_values) | Will add longword values from address array_of_values, no_of_times times in raptor table property, starting with index spr_index. |
jsfSprlistFieldSetval(spr_index, property, no_of_times, value) | Will write longword value no_of_times times in raptor table property, starting with index spr_index. |
jsfSprlistFieldSetOffset(spr_index, property, no_of_times, array_of_values, skip_offset) | Exactly the same as jsfSprlistFieldSet but you can control the offset to skip to the next object. |
jsfSprlistFieldModOffset(spr_index, property, no_of_times, array_of_values, skip_offset) | Exactly the same as jsfSprlistFieldMod but you can control the offset to skip to the next object. |
jsfSprlistFieldSetvalOffset(spr_index, property, no_of_times, value, skip_offset) | Exactly the same as jsfSprlistFieldSetval but you can control the offset to skip to the next object. |
Command | Description |
---|---|
rapParticleInject(address_of_particle_struct) |
address_of_particle_struct points to a 6 column by user definable rows table of longwords. First row must have (0,0,0,x,y,no_particles) and the other the particle definitions (angle, speed, angular speed, initial colour, colour decay (per frame), pixel life (in frames)) See example projects: particles, spiral, starfield, starfield2 |
Command | Description |
---|---|
rapSetMapLoc(x,y) |
Set map position to x,y. Where x and y are x<<16 and y<<16 Eg. rapSetMapLoc(10<<16,200<<16) See example project: tilemap |
Command | Description |
---|---|
jsfLoadClut(palette_address,target_clut_number_of_indices) |
takes the palette values at address "palette_address" and copies them
to CLUT "target_clut_number" (0 to 15). clut_number_of_indices
tells the routine how many to copy. This routine can be used to set up
anything from 2 to 256 palette indices at once.
Eg. jsfLoadClut(strptr(STARS_clut),10,16) ' Loads the palette from the STARS asset into CLUT 10 where there are 16 colours. See example project: shootbang |
rapFadeClut(int clut_no,int fade_cols,int *palette) | fades CLUT clut_no (0-15) to CLUT values address palette . fade_cols is the number of CLUT entries to process. Note that fade_cols is 0 based, so to fade 16 cols pass 15. |
rapFadeSingle(index_to_fade,desired_colour_in_16_bit_BBG) | fades CLUT index index_to_fade to desired_colour_in_16_bit_BBG . |
rapFadeDelay = x | Where x is the delay (in function calls) between steps (.word) |
Command | Description |
---|---|
rapPrint "text here" | prints a static string to screen at coordinates set by rapLocate. No fancy formatting allowed (i.e. it'll only work with something like rapPrint "hello". rapPrint "hello"&"world" will fail). Font is set via jsfFontIndx and size from jsfFontSize. |
rapPrintCont "more text here" | Continues printing from where previous rapPrint command ended. You can use font commands before this to change text style or colour mid sentence. No need to use rapLocate before this. |
jsfPrintInt 64 | Print an integer value. |
rapNumToStr(number, digits, string$) |
converts number with (digits+1) digits very fast and render it to string$. Note that the number has to be an integer. Example: bin2asc(987,2,out$) will convert number 987 to string using 3 digits and place it into out$. If we used 3 instead of 2 we'd get "0987" |
print "text here" |
Print text at location rapLocate and allow concatination. Example: print "hiya! ",variablename," hello ",123.237462376 |
rapLocate x,y | Locates the cursor at coordinates x,y. Notice that those are pixel coordinates, not cursor coordinates. |
jsfFontSize(index) | Changes Font Size - This is a zero based index that tells Raptor which font file to use from the Assets/Fonts folder. |
jsfFontIndx(index) | Changes Font Color - This is a zero based index that tells Raptor which font to use from within the relevant font.bmp as picked by jsfFontSize |
Command | Description |
---|---|
rapMTInit |
If you are using Memory Track, you must put this command at the beginning of your code. Example: CALL rapMTInit See example projects: scores and scoresAdvanced |
value = rapMTPresent | value is negative if no Memory Track is present. If you are using memory track, make sure you have used rapMTInit |
rapHighscoresScore | points to the first highscore table (10 entries, one longword each) |
rapHighscoresName | points to the first highscore names table (10 entries, 8 characters each, not null terminated) |
rapHiscoreCheck(score,name) | checks if score is a high score. name, like above, is 8 characters. |
rapHiscoreSort | re-sorts the highscores as well as the names. |
rapMTSave | saves the highscore table. Use it in combination with rapMTPresent and rapMTInit. |
raptor_user_savedata | points to 512 bytes for user data which will be appended to the MT save |
rapHighscores1Score & rapHighscores1Name | Point to individual highscore tables. 5 are available. rapHighscores1Score to rapHighscores5Score and rapHighscores1Name to rapHighscores5Name |
This will display a debug window detailing the main 68K registers and 16 user defined watch variables. It will also show a user defined string.
All values shown are in HEX.
By default, the 7-15 watch variables will point to; Ticks and NTSC flag, VBL Time remaining, last collision result, current active list, tilemap x, tilemap y, end of program data (BSS), Free RAM.
Command | Description |
---|---|
rapDebugSetXY(x,y) |
Set the position of the Raptor debug window in pixels. |
rapDebugPrint "This is some debug text" |
Print some text in the debug window. Maximum
of 77 chars. |
rapDebugSetVisible(DEBUG_SHOW)
|
Show or hide the debug window. Valid options to pass in are DEBUG_SHOW or DEBUG_HIDE |
rapDebugUpdate() |
Tell Raptor that you want the debug values to update. |
rapDebugInverse() |
Switches between White background with black text and
black background with white text. |
jsfDebugMessage "Quick debug message" |
Will automatically show the debug window with your text
string. Your program will keep running. |
jsfDebugMessageHalt "We have halted the application" |
Will automatically show the debug window with your text
string and also HALT your program from continuing. NOTE: The
background will intentionally strobe colours!! |
rapDebugSetMonitor(watchnumber, strptr(variabletowatch)) | This will set up a watch over a variable of your
choice. You pass in the address of the variable, whenever a
rapDebugUpdate() is called, Raptor will get the value at the variable
and update it's debug values. There are 16 watch numbers that
you can set up (0-15). Example: rapDebugSetMonitor(0, strptr(sprite[sprBugIndex].x)) ' This will set up the first watch to peek at that sprites x position. |
See
example project: debugview |
Either U-235 or Zerosquare (selectable at rapapp.s via equate "player", 0=Zerosquare's player, 1=U-235 player)
Command | Description |
---|---|
value = jsfGetPad(padID) |
The value returned from this command will repeat when the buttons are held down. This is ideal for general gameplay movement where the player would be holding a direction or firebutton. Returns values from either pad 1 or 2. padID can be LEFT_PAD or RIGHT_PAD Example: pad1 = jsfGetPad(LEFT_PAD) Check dpad up: "if pad1 BAND JAGPAD_UP then" Check button A is held down: "if pad1 BAND JAGPAD_A then" |
value = jsfGetPadPressed(padID) | The value returned from this command will be a single
press (debounced). Therefore, it will always just return the
last button pressed down. This is ideal for menus where you
might not want the player to hold down the button to move something,
but rather have to keep pressing a button. Returns values from either pad 1 or 2. padID can be LEFT_PAD or RIGHT_PAD Example: pad1 = jsfGetPadPressed(LEFT_PAD) Check dpad up: "if pad1 BAND JAGPAD_UP then" Check button A was pressed: "if pad1 BAND JAGPAD_A then" |
Direction pad masks |
JAGPAD_UP, JAGPAD_DOWN, JAGPAD_LEFT, JAGPAD_RIGHT, JAGPAD_A, JAGPAD_B, JAGPAD_C, JAGPAD_PAUSE, JAGPAD_OPTION, JAGPAD_0, JAGPAD_1, JAGPAD_2, JAGPAD_3, JAGPAD_4, JAGPAD_5, JAGPAD_6, JAGPAD_7, JAGPAD_8, JAGPAD_9, JAGPAD_STAR,JAGPAD_HASH |
Command | Description |
---|---|
u235PlayModule(mod_address,format) |
plays a .mod file at address "mod_address" in either mono or stereo. "format" can be MOD_STEREO or MOD_MONO Example: u235PlayModule((int)strptr(Module1),MOD_STEREO) where Module1 is an asset in abs. example project: u235_Test |
u235StopModule() | stops .mod playing |
u235GetPad(padID) |
This is the specific U235 pad input. It returns values from either pad 1 or 2. padID can be LEFT_PAD or RIGHT_PAD For standard pad input you should just use the universal function jsfGetPad(padID). |
u235PlaySample(int channel,int sfxnum) | triggers sampleno on channel |
u235PlaySampleFreq(channel,sampleno,frequency) | triggers sampleno on channel at frequency in Hz |
u235ModuleVol(x) | sets mod music volume (x in range 0 - 63) |
u235SampleVol(x) | sets global sfx volume (x in range 0 - 63) |
u235KillChannel(x) | stops playing sample at channel number x |
u235ChannelVol(channel,volume) | set or adjust the volume on channel to volume (0 to 63) |
u235ChannelFreq(channel,frequency) | sets frequency of channel (0 to 65535) |
rotary_mode1 | +1 = rotary, - 1 = jagpad (Port 1) (.l) |
rotary_mode2 | +1 = rotary, - 1 = jagpad (Port 2) (.l) |
turn_direction1 | rotary value (bigger is faster) - +=left / 0=nothing / - =right (Port 1) (.l) |
turn_direction2 | rotary value (bigger is faster) - +=left / 0=nothing / - =right (Port 2) (.l) |
rotary_interval1 | trim value for rotary (Port 1) (.l) |
rotary_interval2 | trim value for rotary (Port 2) (.l) |
spin_delta1 | value to add to turn_direction per increment (Port 1) (.l) |
spin_delta2 | value to add to turn_direction per increment (Port 2) (.l) |
value = u235Rnd | Return a random number from U235SE. NOTE: A random number will only be generated if U235 is running. For example, playing a mod or sfx. |
Direction pad masks |
PAD_UP, PAD_U, PAD_DOWN, PAD_D, PAD_LEFT, PAD_L, PAD_RIGHT, PAD_R, PAD_HASH, PAD_9, |
Command | Description |
---|---|
zeroGetPad(padID) |
reads both pad ports and sends results back to variables zero_left_pad, zero_right_pad, zero_mousex_delta, zero_mousey_delta and zero_rotary_delta. padID can be LEFT_PAD or RIGHT_PAD. By default the engine is configured to assume 2 joypads connected. For standard pad input you should just use the universal function jsfGetPad(padID). example projects: zero_Test, chessboard, print |
zeroSetNormalPadMode() | sets up the engine to read two pads (enabled by
default). |
zeroSetJoyPort1() | enables joypad port 1 to be used for rotary/mouse input. This doesn't enable rotary/mouse mode. zero_rotary_delta will give the number of rotary ticks since the last read command. |
zeroSetJoyPort2() | enables joypad port 2 to be used for rotary/mouse input. This doesn't enable rotary/mouse mode. zero_rotary_delta will give the number of rotary ticks since the last read command. |
zeroSetRotaryMode() | enables rotary mode. |
zeroSetAtariMouseMode | enables Atari mouse mode. Input_Mouse_Left and Input_Mouse_Right are the masks to check for button presses zero_mousex_delta, zero_mousey_delta are the number of mouse ticks in x and y axis since the last read command. |
zeroSetAmigaMouseMode | enables Amiga mouse mode. Input_Mouse_Left and Input_Mouse_Right are the masks to check for button presses zero_mousex_delta, zero_mousey_delta are the number of mouse ticks in x and y axis since the last read command. |
zeroPlaySample(chan,start_address, len, frequency, params) |
plays a sample starting from start_address with length len to channel chan with speed frequency and with flags params. Channel should be from 1 to 4. start_address should be aligned to 4 bytes. len should be a multiple of 4. frequency should be an integer that divides the base frequency of 46168Hz. So for example if it's set to 1, it'll play a sample at 46168Hz, a 2 will play a sample at 23084Hz etc. Example: zeroPlaySample(1, strptr(explode_sam), (strptr(explode_sam_end)-strptr(explode_sam)+3) and 0xfffffffc, (46168/8000), Zero_Audio_8bit_Signed) example project: zero_Test
|
Direction pad masks | Input_Pad_Pause, Input_Pad_A, Input_Pad_Up, Input_Pad_Down, Input_Pad_Left, Input_Pad_Right, Input_Pad_C1, Input_Pad_B, Input_Pad_Star, Input_Pad_7, Input_Pad_4, Input_Pad_1, Input_Pad_C2, Input_Pad_C, Input_Pad_0, Input_Pad_8, Input_Pad_5, Input_Pad_2, Input_Pad_C3, Input_Pad_Option, Input_Pad_Sharp, Input_Pad_9, Input_Pad_6, Input_Pad_3 |
Offset's friendly name | Offset | Description | Possible Values (From code) |
---|---|---|---|
If using in rapinit.s then exclude the R_ from the setting. | |||
active | 4 | Show or hide the sprite | R_is_active R_is_inactive |
x | 8 | x position in 16.16 | 100<<16 (would be 100 pixels from the left) |
x_ | 10 | x position (does not require 16.16 conversion) | 100 (would be 100 pixels from the left) |
y | 12 | y position in 16.16 | 100<<16 (would be 100 pixels from the top) |
y_ | 14 | y position (does not require 16.16 conversion) | 100 (would be 100 pixels from the top) |
xadd | 16 | x velocity to add in 16.16 (auto-move the sprite) | 2<<16 (automatically move the sprite 2 pixels on X every frame) |
xadd_ | 18 | x velocity to add (does not require 16.16 conversion) (auto-move the sprite) | 2 (automatically move the sprite 2 pixels on X every frame) |
yadd | 20 | y velocity to add in 16.16 (auto-move the sprite) | 2<<16 (automatically move the sprite 2 pixels on Y every frame) |
yadd_ | 22 | y velocity to add (does not require 16.16 conversion) (auto-move the sprite) | 2 (automatically move the sprite 2 pixels on Y every frame) |
flip | 24 | if set, add _width to X and set mirror | R_is_normal R_is_flipped |
width | 28 | Width of sprite | In pixels |
height | 32 | Height of sprite | In pixels |
vbox | 36 | Height of collision box from centre in pixels | In pixels (does not change when scaling used) |
hbox | 40 | Width of collision box from centre in pixels | In pixels (does not change when scaling used) |
gfxbase | 44 | Pointer to phrase aligned sprite bitmap data | |
framesz | 48 | Size of sprite frame in bytes (offset to next frame) | |
framedel | 52 | Counter until the next anim frame advances |
|
curframe | 56 | Current frame number (or 0 for no frames) | |
maxframe | 60 | Additional number of animation frames after the first | |
animloop | 64 | R_ani_rept = loop
animation R_ani_once=terminate on loop |
R_ani_rept R_ani_once |
wrap | 68 | What the sprite will do when exiting the bounds of the
screen. R_edge_wrap = wrap round to the opposite side. R_edge_ignore = Ignore the edge and don't wrap (won't be visible when off screen but will be active). R_edge_kill = Automatically set the sprite as inactive when it leaves the screen. |
R_edge_wrap R_edge_ignore R_edge_kill |
timer | 72 | integer number of frames to stay alive, or R_spr_inf for infinite | R_spr_inf |
track | 76 | R_spr_linear = use fract update, else pointer to x.y co-ords | R_spr_linear |
colchk | 80 | R_cant_hit = no collision detection | R_can_hit R_cant_hit |
scaled | 84 | R_spr_unscale = sprite is not scaled R_spr_scale = sprite will or can be scaled |
R_spr_scale R_spr_unscale |
scale_x | 88 | 32 is 1:1. 0-31 are scaled down, 33-255 are scaled up. | 32 |
scale_y | 92 | 32 is 1:1. 0-31 are scaled down, 33-255 are scaled up. | 32 |
CLUT | 96 | R_no_CLUT for no change, else use an integer of 0-15 if the sprite is less than 16bit colour. | R_no_CLUT or 0-15 |
animspd | 100 | Number of screen updates (VB) before the animation advances | Integer |
bytewid | 104 | Width of one scanline of sprite in bytes | |
tracktop | 108 | Loop point for tracking, or -1 for exit | 0 |
was_hit | 112 | Set to +ve if by the collision routine if sprite hit | |
coffx | 116 | Collision box x offset - pixel distance from centre of sprite | |
coffy | 120 | Collision box y offset - pixel distance from centre of sprite | |
remhit | 124 | R_cd_remove = Set the sprite as inactive if
hit. R_cd_keep = Leave the sprite active. |
R_cd_remove R_cd_keep |
bboxlink | 128 | R_single, or pointer to bounding box link data | R_single |
hitpoint | 132 | Hitpoints of damage to take before removal | |
damage | 136 | Damage to deal | |
flash | 140 | Make sprite blink | |
gwidth | 144 | Graphics width | |
Rrmotion | 148 | Pointer to RMotion animation | |
rmcurfrm | 152 | RMotion internal | |
rmfrm | 156 | RMotion internal | |
bdepth | 160 | Bit Depth of sprite - Sprite graphics type: 1,2,4,8,16 or 24 bit | 1, 2, 4, 8, 16, 24 |
cryrgb | 164 | If CRY colour space | R_is_RGB R_is_cry |
trans | 168 | Trans for see-through background, opaque for solid background. If <16bit then colour index 0 is used. Otherwise black is used. | R_is_trans R_is_opaque |
userdat1 | 172 | Reserved for future expansion - Can be used to store extra information about the sprite. | |
userdat2 | 176 | Reserved for future expansion - Can be used to store extra information about the sprite. | |
userdat3 | 180 | Reserved for future expansion - Can be used to store extra information about the sprite. | |
userdat4 | 184 | Reserved for future expansion - Can be used to store extra information about the sprite. |
RB+ Command | JagStudio Command (rename to) |
---|---|
RSETOBJ(objnum,property,value) | Removed - use sprite[objnum].property = value instead |
value = RGETOBJ(objnum,property) | Removed - use value = sprite[objnum].property instead |
SNDPLAY(int sampleno,int channel) | u235PlaySample(int channel,int sfxnum) |
ZEROPAD() | jsfGetPad(pad) - Global pad reader for u235 and Zero. Where pad is LEFT_PAD or RIGHT_PAD |
zero_left_pad / zero_right_pad | These are no longer needed as the pad values are populated by jsfGetPad(pad) |
GETPAD(padnum) | jsfGetPad(pad) - Global pad reader for u235 and Zero. Where pad is LEFT_PAD or RIGHT_PAD |
powaset |
jsfSprlistFieldSet |
powadiff | jsfSprlistFieldMod |
powazap | jsfSprlistFieldSetval |
powabset | jsfSprlistFieldSetOffset |
powabdiff | jsfSprlistFieldModOffset |
powabzap | jsfSprlistFieldSetvalOffset |
powaunpack | jsfUnpack (you can also use jsfUnpack68k) |
powablitlist | REMOVED - Use rapBlitList which is now the full version. |
fullpowablitlist | rapBlitlist |
powaeeprom | jsfEEPROM |
powaeepromword | jsfEEPROMWord |
powaeepromboard | jsfEEPROMBoard |
SNDZEROPLAY | zeroPlaySample |
RAPTOR_particle_clear | rapParticleClear |
RLOCATE | rapLocate |
RPRINT | rapPrint |
RPRINTINT | jsfPrintInt |
loadclut | jsfLoadClut |
colour | jsfColour |
DELAY | jsfDelay |
RBSORT | jsfSort |
RSETLIST | rapSetActiveList |
FADEPAL | rapFadeClut |
RHIT | rapCollide |
RPARTI | rapParticleInject |
RSETMAP | rapSetMapLoc |
fadesingle | rapFadeSingle |
hiscore_sort | rapHiscoreSort |
hiscore_check | rapHiscoreCheck |
bin2asc | rapNumToStr |
MODPLAY | u235PlayModule(int module,short stereo) - 'stereo' input can be; MOD_MONO or MOD_STEREO |
RUPDALL | jsfVsync - The normal VSYNC command should still generally be used and maps to jsfVsync(0) |
basic_r_indx = index | jsfSetFontIndx(index) |
basic_r_size = index | jsfSetFontSize(index) |
SNDKILL | u235KillChannel |
SNDDELTA | u235ChannelVol |
raptor_fade_delay | rapFadeDelay |
raptor_ntsc_flag | rapNTSCFlag |
MODVOL | u235ModuleVol |
SNDVOL | u235SampleVol |
SNDFREQ | u235ChannelFreq - Not required if using u235PlaySampleFreq |
Input_SetJoyPort1 | zeroSetJoyPort1() |
Input_SetJoyPort2 | zeroSetJoyPort2() |
Input_SetNormalPadMode | zeroSetNormalPadMode() |
Input_SetRotaryMode | zeroSetRotaryMode() |
Input_SetAtariMouseMode | zeroSetAtariMouseMode() |
Input_SetAmigaMouseMode | zeroSetAmigaMouseMode() |
rlist[] | sprite[] |
RAPTOR_mt_init | rapMTInit |
raptor_mt_present | rapMTPresent |
RAPTOR_mt_save | rapMTSave |
U235SE_rng | u235Rnd |
raptor_highscores_hex | rapHighscoresScore |
raptor_highscores_nam | rapHighscoresName |
raptor_highscores1_hex | rapHighscores1Score |
raptor_highscores1_nam | rapHighscores1Name |
raptor_highscores2_hex | rapHighscores2Score |
raptor_highscores2_nam | rapHighscores2Name |
raptor_highscores3_hex | rapHighscores3Score |
raptor_highscores3_nam | rapHighscores3Name |
raptor_highscores4_hex | rapHighscores4Score |
raptor_highscores4_nam | rapHighscores4Name |
raptor_highscores5_hex | rapHighscores5Score |
raptor_highscores5_nam | rapHighscores5Name |
raptor_vbl_time_remain | rapVBLTimeRemain |
raptor_ticks | rapTicks |
Old Zero Player Value | Old U235 Value | New (Universal) JagPad Constant (will work for either sound/input engine) |
---|---|---|
Input_Pad_Up | PAD_UP | JAGPAD_UP |
Input_Pad_Down | PAD_DOWN | JAGPAD_DOWN |
Input_Pad_Left | PAD_LEFT | JAGPAD_LEFT |
Input_Pad_Right | PAD_RIGHT | JAGPAD_RIGHT |
Input_Pad_A | PAD_A | JAGPAD_A |
Input_Pad_B | PAD_B | JAGPAD_B |
Input_Pad_C | PAD_C | JAGPAD_C |
Input_Pad_Pause | PAD_PAUSE | JAGPAD_PAUSE |
Input_Pad_Option | PAD_OPTION | JAGPAD_OPTION |
Input_Pad_0 | PAD_0 | JAGPAD_0 |
Input_Pad_1 | PAD_1 | JAGPAD_1 |
Input_Pad_2 | PAD_2 | JAGPAD_2 |
Input_Pad_3 | PAD_3 | JAGPAD_3 |
Input_Pad_4 | PAD_4 | JAGPAD_4 |
Input_Pad_5 | PAD_5 | JAGPAD_5 |
Input_Pad_6 | PAD_6 | JAGPAD_6 |
Input_Pad_7 | PAD_7 | JAGPAD_7 |
Input_Pad_8 | PAD_8 | JAGPAD_8 |
Input_Pad_9 | PAD_9 | JAGPAD_9 |
Input_Pad_Star | PAD_STAR | JAGPAD_STAR |
Input_Pad_Hash | PAD_HASH | JAGPAD_HASH |