| |||
Views: 88,314,193 |
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search | 03-28-24 08:59 PM |
|
Guest: Register | Login |
Main - Posts by never-obsolete |
never-obsolete |
| ||
Rat Level: 24 Posts: 1/96 EXP: 74326 Next: 3799 Since: 02-22-07 From: Phoenix, AZ Last post: 2567 days Last view: 2567 days |
programming section would be great |
never-obsolete |
| ||
Rat Level: 24 Posts: 2/96 EXP: 74326 Next: 3799 Since: 02-22-07 From: Phoenix, AZ Last post: 2567 days Last view: 2567 days |
I use 3 space tabs for high level languages, and 20 space tabs for assembly. |
never-obsolete |
| ||
Rat Level: 24 Posts: 3/96 EXP: 74326 Next: 3799 Since: 02-22-07 From: Phoenix, AZ Last post: 2567 days Last view: 2567 days |
Posted by beneficii please, for the love of god, add a goto option in the menu bar. |
never-obsolete |
| ||
Rat Level: 24 Posts: 4/96 EXP: 74326 Next: 3799 Since: 02-22-07 From: Phoenix, AZ Last post: 2567 days Last view: 2567 days |
not a roster hack |
never-obsolete |
| ||
Rat Level: 24 Posts: 5/96 EXP: 74326 Next: 3799 Since: 02-22-07 From: Phoenix, AZ Last post: 2567 days Last view: 2567 days |
how did you handle $8001? did you hard code the corresponding mmc5 register or do you have an "interpreter" that handles all writes? i'm only asking because i'm currently converting an mmc3 game to mmc5. |
never-obsolete |
| ||
Rat Level: 24 Posts: 6/96 EXP: 74326 Next: 3799 Since: 02-22-07 From: Phoenix, AZ Last post: 2567 days Last view: 2567 days |
something i've been working on in my spare time. it's only a viewer at this point. |
never-obsolete |
| ||
Rat Level: 24 Posts: 7/96 EXP: 74326 Next: 3799 Since: 02-22-07 From: Phoenix, AZ Last post: 2567 days Last view: 2567 days |
this is mapper/setup dependent. the mmc1 can also be set up so that $8000-$BFFF is mapped to the 2nd to last 16K prg bank and $C000-$FFFF is programmer mappable, or a 3rd way provides a full 32K switch.
you could keep track of writes to $E000-$FFFF (where the prg register is mapped) and keep a running tab on what prg-banks are mapped where in your head. |
never-obsolete |
| ||
Rat Level: 24 Posts: 8/96 EXP: 74326 Next: 3799 Since: 02-22-07 From: Phoenix, AZ Last post: 2567 days Last view: 2567 days |
im gonna assume your talking about the NES. are you trying to convert a rom from chr-rom to chr-ram or editing an existing chr-ram game?
to write to chr-ram, you need to set the vram destination pointer (via $2006) and write your data with $2007. all of this needs to be done durring vblank or when rendering is disabled. |
never-obsolete |
| ||
Rat Level: 24 Posts: 9/96 EXP: 74326 Next: 3799 Since: 02-22-07 From: Phoenix, AZ Last post: 2567 days Last view: 2567 days |
i thought it was because sprites were being used from PPU $0000 and $1000. having the background and sprites use the same pattern table screws up the IRQ counter. |
never-obsolete |
| ||
Rat Level: 24 Posts: 10/96 EXP: 74326 Next: 3799 Since: 02-22-07 From: Phoenix, AZ Last post: 2567 days Last view: 2567 days |
i started writting an editor for it awhile ago. i never got around to figuring out completely how Base I, Waterfall, and Base II work.
the boss part of some levels also needs to be worked out. the game writes to chr-ram and also changes some tile definitions that cause the level to get muddle up. i can give you the source if it will help you out. |
never-obsolete |
| ||
Rat Level: 24 Posts: 11/96 EXP: 74326 Next: 3799 Since: 02-22-07 From: Phoenix, AZ Last post: 2567 days Last view: 2567 days |
this will write a full (uncompressed) name/attribute table to the vram destination held in X and Y. DataPtr should point to the start of the data.
DataPtr (word) needs to be on the zero-page. PPU_ADDR = $2006 PPU_DATA = $2007 ;-------------------------------SubLoadNameTable-------------------------------- ; Description: Loads 1024 bytes of data into the selected name table. ; ; Arguments: X: dest addr high ; Y: dest addr low ; DataPtr, DataPtr + 1: src addr ; Return Values: (none) ; ; Routines Called: (none) ; Registers Affected: A,X,Y ; Variables Affected: (none) SubLoadNameTable: stx PPU_ADDR sty PPU_ADDR lda DataPtr + 1 ; preserve DATaddrHI pha ldx #4 ; load name table loop ldy #0 _sub_nametable_loop: lda (DataPtr),y sta PPU_DATA iny bne _sub_nametable_loop ;-------------------- inc DataPtr + 1 dex bne _sub_nametable_loop pla ; restore DATaddrHI sta DataPtr + 1 rts ;------------------------------------------------------------------------------- this should only be called when rendering is disabled as it will spill over vblank. eventuallly you'll probably want something more flexible, like a vram stack, but this should work for gettin sometin to the screen. |
never-obsolete |
| ||
Rat Level: 24 Posts: 12/96 EXP: 74326 Next: 3799 Since: 02-22-07 From: Phoenix, AZ Last post: 2567 days Last view: 2567 days |
Chris Covell made this demo that has a full screen splash. |
never-obsolete |
| ||
Rat Level: 24 Posts: 13/96 EXP: 74326 Next: 3799 Since: 02-22-07 From: Phoenix, AZ Last post: 2567 days Last view: 2567 days |
here's a visual that might help. the image is kinda big so i linked to it. the red grid lines on the left picturebox are the same as the black ones on the right picturebox and are not part of the scene.
edit: make sure to view the image fullsize or it'll look distorted. |
never-obsolete |
| ||
Rat Level: 24 Posts: 14/96 EXP: 74326 Next: 3799 Since: 02-22-07 From: Phoenix, AZ Last post: 2567 days Last view: 2567 days |
this is the hook i used to add an in-game playbook editor to Tecmo Super Bowl (nes).
this first piece is where the game handles your menu choices, with my jump inserted ("jsr off_menu_p1"). there is also another similar code snippet that handles player 2.
now, depending on the calling player, code will jump to "off_menu_p1" or "off_menu_p2". $E1 and $E7 hold the index of the menu choice taken, for p1 and p2 respectively. "_off_menu_normal" is code that should be executed for original menu choices.
writing 7s to MMC3_CTRL and MMC3_DATA swap in the code banks needed by the playbook editor. the 7 and 15 swap back the bank that was there before. all code after the two PLA is for re-entry into the game's code. the most important thing is to return to the game's code with the NES in the same state it was before your code was executed. unless you know the game will swap in the proper banks (prg/chr) or will discard the register values. |
never-obsolete |
| ||
Rat Level: 24 Posts: 15/96 EXP: 74326 Next: 3799 Since: 02-22-07 From: Phoenix, AZ Last post: 2567 days Last view: 2567 days |
keep an array of indexes to determine the page to swap in.
then put this in some free space
that way your counter only loops from 0 to 3 and no adding or shifting is needed. |
never-obsolete |
| ||
Rat Level: 24 Posts: 16/96 EXP: 74326 Next: 3799 Since: 02-22-07 From: Phoenix, AZ Last post: 2567 days Last view: 2567 days |
these images have been scaled down from 1024x768 so they may look a little distorted.
image 1 image 2 image 3 |
never-obsolete |
| ||
Rat Level: 24 Posts: 17/96 EXP: 74326 Next: 3799 Since: 02-22-07 From: Phoenix, AZ Last post: 2567 days Last view: 2567 days |
i was testing out my editor and redid the first town with some borrowed gfx.
|
never-obsolete |
| ||
Rat Level: 24 Posts: 18/96 EXP: 74326 Next: 3799 Since: 02-22-07 From: Phoenix, AZ Last post: 2567 days Last view: 2567 days |
here's some code i used in tecmo super bowl, another mmc3 game. you'll need to write a six to MMC3_CTRL instead.
1. yes 2. no the PC drops to the next instruction unless you change it. switching out whatever bank that the PC points to is not a good idea either. hope that helps |
never-obsolete |
| ||
Rat Level: 24 Posts: 19/96 EXP: 74326 Next: 3799 Since: 02-22-07 From: Phoenix, AZ Last post: 2567 days Last view: 2567 days |
the fix is in this code. to make sure you learn something, i'll leave it up to you to figure it out. |
never-obsolete |
| ||
Rat Level: 24 Posts: 20/96 EXP: 74326 Next: 3799 Since: 02-22-07 From: Phoenix, AZ Last post: 2567 days Last view: 2567 days |
Main - Posts by never-obsolete |
© 2005-2023 Acmlm, blackhole89, Xkeeper et al. |
MySQL - queries: 138, rows: 170/170, time: 0.217 seconds. |