★ FAQ ★ Program in general![]() | This technique should only be used by those who are familiar with library behavior and SH assembly. These operations can cause runaway inside the library if not used properly. |
As a countermeasure for this
The SH C compiler has an option switch that uses a divider, so if you don't want to be aware of this, you can either use the unused option (-div = cpu) or disable interrupts when using the divider (-div = cpu). Be sure to specify div = peripheral).
* Gcc does not generate code that uses a divider unless explicitly used in C compile-time code (eg inline assembler).
First, VDP1 puts image data, sprite display commands, color lookup table, and Gouraud shading table in VRAM. All of these must be kept within 512KB. In other words, 512KB cannot be used only with picture data. Of course, if the picture data occupies a lot, the space for commands will decrease, so the number of pictures that can be drawn will decrease, and vice versa. It is better to solidify the specifications with such things in mind.
Next is VDP2, which contains bitmap data, character pattern data, pattern name data, and in some cases rotation coefficient data (this data can also be stored in color RAM). Of course, all of this data fits in VRAM, but there are other access issues as well.
Just be careful, because using bitmaps requires a lot of RAM.
\ SATURN \ SEGASMP \ SYS \ MK.BAT
SMPSYS.C
SMPSYS.LNK
SYS_ID.SRC
from,
Please rewrite as follows.
Also, in the case of data that puts too much load on VDP, it may not be displayed correctly. (That is, the frame will be dropped.)
Also, memory-related functions such as calloc, malloc, and sprintf can be compiled and work, but they are not suitable for game machine programming.
Calloc, malloc, etc. are functions that are deeply dependent on the OS, so when used on Saturn, no error will be returned even when mapping to an illegal address. I think these are natural results given that Saturn is not a machine with an OS.
(This is the same for both SBL and SGL.)
For the processing after the clock change, refer to the system program user's manual in the "Programmer's Guide".
To put it simply,
For the above reasons, it is not possible to create data longer than 63 minutes 04 seconds.
If the created software is 63 minutes 04 seconds or more, it cannot be commercialized as a matter of course.
For an explanation of the IP itself and how to write a script file for a self-booting CD,
The execution procedure for each item is as follows.
objcopy -O binary input output
Or with GCC's link options
-Xlinker -oformat -Xlinker binary
If you change the read address of the 1st READ FILE, you need to recompile the IP.
The IP sources and security objects currently provided are for SH-C, so it is necessary to create an IP with Hitachi SH-C.
Alternatively, we can provide you with the files needed to create an IP for GNU by email, so please contact us if you need them.
The file (1ST READ FILE) that is automatically loaded after the IP is loaded is the first file on the CD-ROM with the file name in ASCII order (synonymous with the file with the file identifier 2).
The file name on the CD-ROM is specified by the File command, and the source on DOS is specified by the FileSource command. At this time, the file name on the CD and the file name of the source do not need to match.
For the meaning of the text file registered in the system area, refer to the attached document. (These text files can be dummy during development, but be sure to include the rights-related text files by the time of master-up.) In addition, the SNASM debugger is used for the self-starting execution method. Please note that it cannot be done.
.DATA.B \ data >> 24 .DATA.B \ data << 8 >> 24 .DATA.B \ data << 16 >> 24 .DATA.B \ data << 24 >> 24
Please define a macro such as.
6002000H + IP size ┏━━━━━━━━━━━━┓
┃ 1st lead file ┃
┃ Loadable area ┃
┃ ┃
┃ ┃
60FF000H ┣━━━━━━━━━━━━┫
┃ System usage area ┃
60FFFFFH ┗━━━━━━━━━━━━┛
60FF000H to 60FFFFFH are used by the system, so never load the 1st read file.
After loading the 1st read file, it will be released to the application.
Also, 6000000H to 6001FFFH are used by the system and should not be used in applications.
However, you can use the stack of 600E00H to 6001FFFH.
After the IP processing is completed and the application is started,
If you prepare another stack of master SH, up to 6001000H,
If you prepare another stack of slave SH, up to 6000E00H,
Each can be used.
6000000H ┏━━━━━━━━━━━━┓
┃Vector, resident routine ┃
6000E00H ┣━━━━━━━━━━━━┫
┃Slave SH stack ┃
6001000H ┣━━━━━━━━━━━━┫
┃Master SH stack ┃
6002000H ┣━━━━━━━━━━━━┫
┃ ┃
★ FAQ ★ Program in general