alfredtdk Posted September 5, 2022 Share Posted September 5, 2022 How can I convert a PAL ROM to NTSC system. It would be Sancho's Forest ROM. As far as I know there is no NTSC version. I think this ROM is perfect for a type of Hack I'm modifying. Quote Link to comment Share on other sites More sharing options...
+Andrew Davie Posted September 6, 2022 Share Posted September 6, 2022 18 hours ago, alfredtdk said: How can I convert a PAL ROM to NTSC system. It would be Sancho's Forest ROM. As far as I know there is no NTSC version. I think this ROM is perfect for a type of Hack I'm modifying. There are two basic issues; the number of scanlines, and the colours. Colours are usually easy to adjust. The number of scanlines... difficulty may vary. Essentially you need to get the scanlines down from 312 (PAL) to 262 (NTSC) if you want standard-size-frames and frames-per-second (FPS). The FPS is directly tied to the number of scanlines displayed. Games typically either use a timer, or hardwired delays/WSYNC writes to time the top (vertical blank) and bottom (overscan) areas above and below the visible playfield area. To convert between NTSC/PAL, it is common to adjust the sizes of these two areas to increase/decrease the number of scanlines they "use". This can be a straightforward process if you know what you're doing, and the ROM is not too obscure in how it handles these areas. It can be tricky if you don't know what you're doing. You really need to understand the machine reasonably well, and exactly what is required in forming a valid TV frame. It can be as simple as changing a single value (the timer write). That's where I'd be starting... looking for writes to TIM64T or similar, and around 'sta WSYNC' instructions. Your best bet, I would say, is having someone who has done this before help you out. 2 Quote Link to comment Share on other sites More sharing options...
+SpiceWare Posted September 6, 2022 Share Posted September 6, 2022 Looking at the game in Stella, the visual portion of the game appears to be around 252 scanlines vs the "typical" 192 scanlines for NTSC game. NTSC displays tend not to like PAL sized images, so the main challenge will be to shrink the visual portion by 60 scanlines or so without impacting gameplay. You can generate a starting point for the source by running the game for a while in Stella then typing savedis in the debugger's Prompt: Which results in this after playing it for a little bit: Forest (1983) (Sancho) (PAL).asm Do note that the more you play it before typing savedis the better the resulting disassembly will be as running the code allows Stella to analyze what the different sections of the ROM are used for. Since it's a PAL game the disassembly has PAL color constants in it: ;----------------------------------------------------------- ; Color constants ;----------------------------------------------------------- BLACK0 = $00 BLACK1 = $10 YELLOW = $20 GREEN_YELLOW = $30 ORANGE = $40 GREEN = $50 RED = $60 CYAN_GREEN = $70 MAUVE = $80 CYAN = $90 VIOLET = $a0 BLUE_CYAN = $b0 PURPLE = $c0 BLUE = $d0 BLACKE = $e0 BLACKF = $f0 You can set up a COMPILE_VERSION constant for PAL or NTSC and use it to switch between two sets of color constants, as well as the values written to TIM64T. NTSC = 0 PAL = 1 COMPILE_VERSION = NTSC ;COMPILE_VERSION = PAL IF COMPILE_VERSION = NTSC BLACK0 = $00 BLACK1 = $00 BLACKE = $00 BLACKF = $00 YELLOW = $10 BROWN = $20 ORANGE = $30 RED = $40 MAUVE = $50 VIOLET = $60 PURPLE = $70 BLUE = $80 BLUE_CYAN = $90 CYAN = $a0 CYAN_GREEN = $b0 GREEN = $c0 GREEN_YELLOW = $d0 GREEN_BEIGE = $e0 BEIGE = $f0 ELSE BLACK0 = $00 BLACK1 = $10 YELLOW = $20 GREEN_YELLOW = $30 ORANGE = $40 GREEN = $50 RED = $60 CYAN_GREEN = $70 MAUVE = $80 CYAN = $90 VIOLET = $a0 BLUE_CYAN = $b0 PURPLE = $c0 BLUE = $d0 BLACKE = $e0 BLACKF = $f0 ENDIF 3 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.