原贴:https://www.patreon.com/posts/nova-v0-7-0-118648844
以下转翻译
祝大家圣诞快乐!
就在这里,Nova v0.7.0 发布了!
v0.7.0
---------------
SH2:增加了FRT的TOCR寄存器。
SH2:增加BSC的REF寄存器。
SH2:增加了对空闲循环的优化(初步)。
SH2:重写了 DMAC。
SH2:重写了 INTC(After Burner 2、OutRun)。
SH2:重写中断处理。
SH2:重写了指令 NEGC、MAC.L 和 MAC.W。
SH2:重写开机程序。
SH2:重构缓存模拟。
SH2:重构指令执行。
SH2:增加了指令执行的吞吐量。
SH2:支持自动矢量。
SH2:修复了缓存区域的地址空间检查。
SH2:修复日志记录。
SH2: 修复了FRT的寄存器TIER的一个bug。
SH2:修复了设置DMAC的CHCR寄存器的一个错误。
SH2.FRT:通过使用移位而不是除法来提高性能。
SH2.FRT:增加外部时钟的设置。
DCC:为 MINIT 和 SINIT 添加了长字访问。
DCC:改进的双 CPU 通信。
DCC:改进了MINIT(超级机器人大战F)的计时。
DCC:将中断级别更改为 0x0f、0x0d。
PLL:固定SCU.TIMER1频率。
M68K:重写异常处理。
M68K:重写 NMI 处理。
SCU:重写了 DMAC(不完整)。
SCU:重写了 INTC。
SCU:改进了 DMA(Gun Bird)的时间。
SCU:修复中断处理的时间问题(Gunbird、Gundam Z)。
SCU:修复有时 DMA 传输不完整的错误。
SCU:修复了有时 DMA 传输可能在未设置启用/启动位的情况下启动的错误。
SCU:修复T0C、T1S的初始化。
SCU:修复中断处理的错误(Rayman)。
SCU 和 SH2:修复了中断操作(雷曼、武士精神 - Zankurou Musouken(无弹药筒警告))。
SCU.DSP:内联所有指令和内部操作。
SCU.DSP:修复了 i_dma 通过 SlideHop 模拟器检测的时间。
SCU.DMAC:通过用移位代替除法进行了优化。
SCU.DMAC:将 DMAC 制作为可执行设备,以获得更好的时间安排。
SCU.DMAC:修复 CDB.DATATRNS 传输(修复 Steam-Heart 的回归)。
SCU.DMAC:实现了更准确的 DMA 传输计时。
SMPC:实现了外围数据收集的时间优化。
SMPC:添加了 3 个未记录的命令(0x0a、0x0b、0xa0)。
SMPC:重写了 INTBACK 命令,改进了 INTBACK 命令的时间。
SMPC:重写了外围数据处理(Galaxy Fight - Universal Warriors)。
SMPC:将 sat_battery.sav 更改为 sat_battery.bin。
SMPC:修复了 INTBACK 命令的一个错误(取消 INTBACK 命令)。
SMPC:修复命令CDON/CDOFF的SF标志设置的错误。
SMPC:重写获取外围数据。
SMPC:修复输入问题(Rayman,Yoshiyuki Sadamoto 插图)。
SMPC:将外围数据收集时间改为100条扫描线(接近SAROO快速光标移动速度)。
SMPC:改变了 INTBACK 命令(SegaSaturn 电子书操作员)的 cbGetStatus 时间。
VDP1:添加了当读取超出范围时返回垃圾数据。
VDP1:重写帧缓冲区的初始化。
VDP1:优化色彩模式解码。
VDP1:修复寄存器镜像(无镜像)的错误。
VDP1:重写了寄存器处理和更新时间,修复了 Lunar(缺少树木)、Tactics Ogre(菜单闪烁)。
VDP1:修复复位或上电时某些寄存器不能初始化的bug
(480P-Mode-Demo:修复自 v0.6.5011 以来的颜色问题,以及不应显示紫色折线的另一个错误)
光栅:精炼。
VDP1:修复了手动擦除/更改时间(Kidou Senshi Z Gundam - Zenpen Zeta no Kodou)。
VDP1:修复手动更改(缺少 Sega Ages - OutRun 精灵)。
VDP1:修复了 CMDLINK,必须忽略位 1、0(Akumajou Dracula X)。
VDP1:修复纹理采样。
VDP1.ERASER:实现了 Eraser 来处理擦除/写入(修复了 KOF95、Sonic Jam 的图形问题)。
VDP1.ERASER:修复endVBE。
VDP2:添加了 m_cpe(循环模式错误)的初始化。
VDP2:在 checkV 处清除 m_cpe(循环模式错误)。
VDP2:实现了边框的绘制。
VDP2:优化颜色模式解码以获取层数据和精灵活动表。
VDP2:修复VCNT更新的一个bug(KOF95卡带警告画面调色板错误)。
VDP2:重写了循环模式处理。
VDP2:修复了 TVSTAT 寄存器处理的一个错误。
VDP2:修复了位图地址包装的错误(NBG0、NBG1、RBG0、SPRITE、Yoshiyuki Sadamoto 插图)。
SCSP:实现了 DSP 的完全仿真。
SCSP:为 CCR 寄存器添加了更多读取处理。
SCSP:重写了 INTC。
SCSP:重写了计时器。
SCSP:清理了未使用的表格。
SCSP:完全重构。
SCSP:修复了 M68K RAM 访问通过 SlideHop 模拟器检测的时间。
SCSP:修复设置监视槽(SRWF FMV)后呼叫地址未更新的错误。
SCSP:修复使用 16 位数据设置时 EFSDL 的一个错误。
SCSP:修复 SDIR 处理的错误(Waku Waku 7)。
SCSP:修复了 DMAC EX 标志的一个错误。
SCSP:通过了 celeriyacon 的 scsp_test 的 13 项测试。
CDB:为 CR 寄存器(Saturn 测试菜单)添加了地址映射区域。
CDB:实现了对 subcodeRW 的处理。
CDB:支持多会话光盘。
CDB:支持多索引磁盘。
CDB:支持CD+G/CD+EG播放。
CDB:重写了 TOC 处理。
CDB:重写定期响应。
CDB:重写状态转换。
CDB:重写了 subcodeQ 处理。
CDB:重写连接器处理。
CDB:重写了位置处理。
CDB:重写数据传输处理。
CDB:重构命令 CdPlay、CdSeek 和 ReadFile。
CDB:通电后不启动周期性响应。
CDB:复位后读取TOC。
CDB:模拟状态 RETRY、ERROR、FATAL。
CDB:重写状态、定期响应、位置处理。
CDB:重写命令CopySctData、MoveSctData。
CDB:使用循环队列优化子码R~W解码。
CDB:重写命令E2,将其重命名为ReadRom。
CDB:添加SH1虚假地址映射。
CDB:改变了周期响应的变化条件。
CDB:合并 r/datatrns 读/写处理程序。
CDB:实现了CdScan。
CDB:反向扫描反转输出样本的顺序。
CDB:重写 CD 报告。
CDB:重写异步操作。
CDB:修复状态 FATAL/OPEN/NODISC/STANDBY 的报告。
CDB:修复了 DATATRNS 寄存器(Steam Hearts)的字访问。
CDB:再次修复AbortFile命令的时间。
CDB:修复 GetdelSctData、CalActSiz、DataEnd(KOF95)、ReadDir/ChgDir(当 infnum 为 254 时 drend 不正确)。
CDB:修复当前播放位置和目标位置的错误。
CDB:修复文件系统有时无法访问当前/父目录的错误。
CDB:修复了 CSCT 标志的一个错误(当一个扇区被丢弃时应该设置)
CDB:修复 MPEG 视频播放两次的缺陷。
CDB:修复了EHST标志设置时间的错误(突击服Leynos 2)。
系统:实现了CAT(周期自适应定时)。
系统:实现了FMA(快速内存访问)。
系统:实现音频流缓冲区。
系统:为PAL模式实现了新机制。
系统:实现通用系统时间片。
系统:重写框架结构。
系统:重写通信端口的处理。
系统:修复地址映射(锁定区域)的一个错误。
系统:修复了 V-BLANK 期间 H-BLANK 的一个错误。
系统:重写 CS2 地址映射。
系统:当没有加载游戏时添加默认BUP。
系统:添加打开/关闭托盘。
土星:更改了 BUP 的名称前缀。
SATURN:修复 SCSP RAM 的初始化,以便快速启动和 HLEBIOS。
土星:增加了对音频 CD 的识别功能。
SATURN:为 HLE_BIOS(Galaxy Fight - Universal Warriors)添加了 VDP1 帧缓冲区初始化。
TITAN:修复TITAN模式。
TITAN:修复了 Suiko Enbu 的输入问题。
TITAN:按钮名称从 PUSHSW 更改为 SELECT。
TITAN:重写了EEPROM和BUP的加载/保存。
TITAN:添加了 SIMM。
TITAN:通过 MIDI 测试。
TITAN:通过了枪支扳机测试。
TITAN:支持新格式7Z/RAR。
TITAN:支持多墨盒。
TITAN:固定钓鱼2的区号。
TITAN:修复了EEPROM读取的一个错误,通过了EEPROM测试。
序言21:添加了一个存根。
光栅:重写光栅。
读者:重写异步操作。
调度员:精炼。
调度程序:修复了当帧退出时下一个目标时间可能会被丢弃的错误。
调度程序:修复了计时器重复的错误。
调度程序:修复了事件执行后可能继续执行的错误。
MP1D:实现了一种新机制(缓冲区满时等待)。
MP1D:视频和音频使用分离的解复用器。
MP1D:减少内存使用量。
MP1DA:修复了播放 Lunar SSSC 开场影片时出现的声音故障。
MP1DV:修复了空 GOP 的错误。
VCDCARD:与 CDBLOCK 分离。
VCDCARD:实现了窗口缩放功能。
VCDCARD:修复了命令 MpSetDec。
VCDCARD:修复崩溃问题。
VCDCARD.MPDV:固定帧缓冲区的显示位置。
VCDCARD.MPDV:修复窗口处理问题。
VCDCARD.MPDV:实现双线性过滤。
VCDCARD.MPDV:用整数计算取代所有浮点计算。
奇怪:重写了异步操作。
奇怪:修复了有时在 BIOS CD 播放器中释放前进/后退按钮后无法停止的错误。
驱动:重构 CD 驱动器状态转换。
PAR:修复了获取供应商 ID、产品 ID 的错误。
数据:添加了世嘉土星的记录数据!电子宠物公园(感谢阿尔法咖啡馆)。
外围设备:实现了 PSY-Q 目标适配器的模拟(已损坏)
外围设备:实现了Satiator(已损坏)的模拟。
外围设备:实现了 SAROO 的模拟。
端口:将 ASIC01、ASIC02 与 SMPC 分离。
FDD:将块大小更改为 512 字节。
BIOS:添加了功能 S_AUTHENCD(SMPMPG1 所需),增加了版本号。
BIOS:修复了 0600092E 处的指令偏移量。
BIOS:支持在启用 SH2 缓存的情况下运行。
BIOS:为 SH2(S)(Doom) 添加了默认 PC 和 SP。
BIOS:修复 SH2(S)(Astal) 的 SYS_SETSCUIM。
BIOS:启用 Nova BIOS。
BIOS:支持运行可执行文件。
BIOS:修复从属 sh2 初始化。
BIOS:实现了 SYS_CHGSYSCK、SYS_TASSEM、SYS_CLRSEM。
BIOS:重写了 SCU 中断的处理以及 SYS 和 BUP 函数的执行接口。
BIOS:HLE BIOS 版本升级至 v0.94。
BIOS 重写了 SH2_INIT 并中断初始化。
BIOS:修复HLE BIOS的BUG,更新HLE BIOS的版本号。
BUP:重新设计了 BUP 格式。
BUP:修复有时会损坏 BUP 文件系统中现有游戏记录的错误。
BUP: 修复读取/写入游戏记录的错误。
EXE:支持新的可执行格式 SRE。
EXE:改进了入口地址 COF/ELF/SRE(DUKPLAYR.COF)的处理。
CD:当 CD 文件名只有一个点而没有扩展名时,将省略该点。
CD: 修复读取时可能超出文件大小范围的bug。
CD:修复最后一首曲目无法结束或循环的bug。
CDX:重写了物理 CD 驱动器的处理。
CDX:重写了 BIN/CCD/CUE/ISO/MDS 解析器。
CDX:重构了 Sector/Index/Track/Session/CD 和 TOC 结构。
CDX:支持多会话和多索引。
CDX:支持新格式CDG/CDI/CHD/CSO/DAX/NRG/TOC/ZSO。
CDX:支持自动生成ECC/EDC代码。
CDX:将 ISO9660 与 CDB 分离。
CDX:支持 PCM 和 WAV(大致)格式。
CDX:修复 MDS/NRG 格式的 CD+G 回归(由 0.6.5003 CdScan 支持引起)。
CDX.CUE:支持 WAV(大致)文件。
常见:实现了cirque(循环队列)。
实用程序:添加了区域 ID。
杂项:实现音频电平计。
杂项:实施“带控制旋转”。
杂项:实现了 Turbo 模式(Tab)。
杂项:实现了步进模式(Ctrl + ->)。
杂项:已实施 per_game_bup。
杂项:改进 FPS 控制,帧现在更加稳定和流畅。
杂项:重写了自动区域,PAL 区域现在具有更高的优先级。
杂项:支持 64 位架构。
杂项:优化 INI 解析器文件处理(加载整个文件而不是逐行加载)。
杂项:减少内存使用量。
杂项:添加暂停/播放切换(空格键)。
杂项:为 FPS 显示添加颜色和阴影。
杂项:在关于对话框中添加了许可证按钮。
杂项:在 nova.ini 中添加了一个新选项 show_log,用于显示/隐藏日志控制台。
杂项:在 nova.ini 中添加了一个新选项 show_stat,用于显示/隐藏 FPS 信息。
杂项:在 nova.ini 中添加了新选项 log_xxx,用于设置各个模块的日志级别。
杂项:在 nova.ini 中将 stv_game 重命名为 stv_slot#。
杂项:在 nova.ini 中将 mpeg_card 重命名为 vcd_card。
杂项:修复了 Saturn Standard Pad 的数据大小。
杂项:修复内存泄漏。
杂项:修复随机崩溃。
杂项:修复了 INI 解析器的一个错误(遇到空行时可能会崩溃)
杂项:修复了 CPE 格式的一个错误。
杂项:更新了 data.json。
杂项:迁移至 C++17。
杂项:通过菜单显示/隐藏输出控制台。
杂项:修复输出控制台无法正确关闭的错误。
其他:支持交换磁盘。
杂项:使 FPS 更加稳定。
杂项:用 create 函数替换各种机器的 init 函数。
D3D9:删除了 D3DX9 依赖项。
D3D9:为了兼容性,将 D3DFMT_X8R8G8B8 更改为 D3DFMT_A8R8G8B8。
图形:实现了各种图形过滤器
没有任何
双线性
CRT(大栅栏)
CRT(小栅栏)
CRT(大槽罩)
CRT(小槽罩)
点(圆形)
点(方形)
液晶显示屏(Game Boy)
液晶显示屏(Game Boy Light)
噪声(动态)
噪音(静态)
电子墨水颜色
纸白
扫描线(荧光粉)
扫描线(直线)
单色
反转颜色
图形:实现全屏模式。
图形:实现了 VSync。
声音:改进了音频流。
声音:支持便携式声音格式。
声音:修复了左右声道反转的错误。
GUI:默认情况下启用 Vsync。
GUI:重新设计文件打开/关闭逻辑。
GUI:在主窗口的标题栏上显示版本号。
GUI:支持各种纵横比。
GUI:支持主窗口的旋转。
GUI:在全屏模式下隐藏光标。
GUI:使用 freetype 渲染覆盖文本。
GUI:修复了恢复最小化窗口时出现的错误。
调试器:启用调试器。
调试器:改进了调试器。
调试器:返回 RTS 而不是从函数返回。
调试器:修复运行调试器时退出程序崩溃的问题。
调试器:修复调试器在低 DPI 显示器下崩溃的错误。
调试器:修复单击 PC 图标时出现的错误。
NOVA:重构了整个项目(未完成)。
NOVA:关闭时释放机器的内存。